Excel VBA Cacher colonne automatiquement

Fermé
CedricG62 Messages postés 38 Date d'inscription mercredi 19 juillet 2017 Statut Membre Dernière intervention 4 novembre 2022 - 1 juil. 2022 à 08:59
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 - 1 juil. 2022 à 09:53
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 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
1 juil. 2022 à 09:53
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