Excel VBA Cacher colonne automatiquement

CedricG62 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Alors voilà j'ai un fichier de pointage avec des dates et je voudrais qu'en fonction du nombre de jour dans le mois, certaines colonne se cachent ou s'affichent.
J'ai essayé un code mais ça ne fonctionne pas :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1")) Is Nothing Then 
'B1 me donne le nombre de jour dans le mois avec cette formule =JOUR(DATE(ANNEE(B3);MOIS(B3)+1;1)-1)
   Select Case Target.Value
       Case 28
           Columns("AE:AG").EntireColumn.Hidden = True 'je cache les colonnes 29-30-31
       Case 29
           Range("AF:AG").EntireColumn.Hidden = True 'je cache les colonnes 30-31
       Case 30
           Range("AG:AG").EntireColumn.Hidden = True 'je cache la colonne 31
       Case 31
           Range("AE:AG").EntireColumn.Hidden = False 'j'affiche toute les colonnes
   End Select
End If
End Sub

Vous auriez des idées ?
Merci d'avance,
Cédric
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Faudra modifier la formule en B1: =JOUR(DATE(ANNEE(B3);MOIS(B3)+1;0))

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1", "B3")) Is Nothing Then
        'B1 me donne le nombre de jour dans le mois avec cette formule =JOUR(DATE(ANNEE(B3);MOIS(B3)+1;0))
       Range("AE:AG").EntireColumn.Hidden = False 'j'affiche toute les colonnes
       Select Case Range("B1")
           Case 28
               Columns("AE:AG").EntireColumn.Hidden = True 'je cache les colonnes 29-30-31
           Case 29
               Range("AF:AG").EntireColumn.Hidden = True 'je cache les colonnes 30-31
           Case 30
               Range("AG:AG").EntireColumn.Hidden = True 'je cache la colonne 31
           Case 31
               Range("AE:AG").EntireColumn.Hidden = False 'j'affiche toute les colonnes
       End Select
    End If
End Sub
0