Re bonjour
j'ai donc deux questions:
les dates commence sur la 5eme colonne (colonne E), les 4 premieres colonnes on des données qui doivent toujours apparaitre, mais je ne vois pas ou changer pour que le code cache seulement les colonnes avec des dates ??
Mes dates de debut et fin de projet sont en C1 et C2, ca j'arrives a modifier le code par contre ou dois je modifier le code pour que la macro fasse les tests sur une ligne different que lq ligne 2,par example la ligne 4 (date de E4 a BE4)??
encore un grand merci pour votre aide
Private Sub ToggleButton1_Click()
Dim NumSem1 As Byte, NumSem2 As Byte
Dim NbCol As Long
With Me.ToggleButton1
If Not IsDate(Me.Range("A2")) Or Not IsDate(Me.Range("B2")) Then
Cells.EntireColumn.Hidden = False
MsgBox "Il faut des dates en A2 et B2!"
.Caption = "Masquer": .BackColor = 255
Exit Sub
End If
If Me.Range("A2") = "" Or Me.Range("B2") = "" Or Me.Range("A2") > Me.Range("B2") Then
Cells.EntireColumn.Hidden = False
MsgBox "Il faut des dates, et que la fin soit supérieure au début!"
.Caption = "Masquer": .BackColor = 255
Exit Sub
End If
If .Caption = "Afficher" Then
Cells.EntireColumn.Hidden = False
.Caption = "Masquer": .BackColor = 255
Else
NumSem1 = Application.WeekNum(Me.Range("A2"), 2): NumSem2 = Application.WeekNum(Me.Range("B2"), 2)
NbCol = Me.Cells(2, Columns.Count).End(xlToLeft).Column
If NumSem1 = 1 Then
If NbCol - NumSem2 - 2 > 0 Then Columns(NumSem2 + 3).Resize(1, NbCol - NumSem2 - 2).Hidden = True
Else
Columns(3).Resize(1, NumSem1 - 1).Hidden = True
If NbCol - NumSem2 - 2 > 0 Then Columns(NumSem2 + 3).Resize(1, NbCol - 2 - NumSem2).Hidden = True
End If
.Caption = "Afficher": .BackColor = 65280
End If
End With
End Sub
'65280 vert
'255 rouge