Bonjour à tous,

je suis nouveau sur le forum que je trouve très bien. Il m'a dans le passé beaucoup aidé mais aujourd'hui je suis coincé et j'aurais besoin de votre aide.

J'ai un classeur excel avec un onglet par personne.
Chaque onglet est organisé de manière identique avec 1 colonne = 1 jour.
Lorsque le jour inscrit en ligne 2 est inférieur à la date du jour, alors il s'inscrit en ligne 31 le texte "HIDE".

J'ai créé une macro (avec l'aide du forum) pour que soit masqué les colonnes dans lesquelles est inscrit HIDE en ligne 31.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
            Dim i As Integer
            For i = 3 To 250
            If Cells(31, i) = "Hide" Then
            Columns(z).Hidden = True
            Else: Columns(i).Hidden = False
            End If
            Next i
Jusque là tout va bien. Le problème est que lorsque je souhaite appliquer cette macro automatiquement sur toutes les feuilles, j'utilise le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Application.ScreenUpdating = False
Dim sht As Worksheet
For Each sht In Worksheets
Dim i As Integer
For i = 3 To 250
If Cells(31, i) = "Hide" Then
Columns(i).Hidden = True
Else: Columns(i).Hidden = False
End If
Next i
MsgBox sh.Name
Application.ScreenUpdating = True
Next sht
Mais rien ne se passe sauf sur la page qui est active au moment du lancement de la macro. Finalement je ne parviens pas à passer d'une feuille à une autre.

Quelqu'un aurait-il une solution ?