'permet de définir la variable i comme un nombre allant de 0 à 255
Dim i As Byte
'Target, c'est la référence de la cellule qui a changé, c'est son nom par défaut
'Intersect(Target, Range("C2:H8")) donne l'intersection entre les plages C2 H8 et Target
'Si l'intersection est vide, la macro ne se déclenche pas, si elle n'est pas vide c'est qu'au
'moins une cellule est commune entre la plage C2:H8 et target.
'Au lieu de dire est vide on écrit "n'est pas rien" dans le patois xlien
'Deuxième condition: Target.count = 1 signifie qu'une seule cellule est sélectionnée
If Not Intersect(Target, Range("c2:h8")) Is Nothing And Target.Count = 1 Then
'Sheets.count indique le nombre d'onglets
For i = 1 To Sheets.Count
If Sheets(i).Name <> "Saisie" Then Sheets(i).Visible = False
'C'est de cette ligne que vient ton problème:
'Target.value donne la valeur de la cellule, Sheets(i).name est le nom de l'onglet qui est
' en train d'être traité par la macro.
'l'onglet est visible si son nom est égal à la valeur de Target
'le problème initial de ton fichier: les onglets se nomment 1 2 3 etc ...
'Les Target sont des dates, par exemple le 2 juillet 2011 est affiché au format jj, dont on
' voit 02 à l'écran, mais en réalité la valeur est 40726, qui ne correspond à aucun onglet.
'Dans ton fichier, il convient de modifier les formules du tableau pour avoir réellement 1 2 ou 3 et pas des dates, ce que j'ai tenté de faire ...
If Sheets(i).Name = CStr(Target.Value) Then Sheets(i).Visible = True
Next i
End If