Bonjour à tous,
novice en macro, j'ai essayé en utilisant des sources de code trouvé sur le forum et avec l'aide de l'enregistreur de macro inclus dans excel de construire une nouvelle macro, mais voila elle ne fonctionne pas.
Pourriez vous y jeter un oeil.
Sub MasqueColonne(Utilisateur As String)
Dim Col As Byte, i As Byte, Lig As Integer, sh As Worksheet
With Sheets("parametrage") 'dans la feuille paramétrage comme on va boucler de la colonne 4 à la dernière colonne, on stocke le n° de la dernière colonne :
Col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column 'on cherche colonne A le nom d'utilisateur saisi et on stocke son numéro de ligne
Lig = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole).Row 'boucle à partir de 4 car Feuil1 toujours affichée
For i = 3 To Col
If UCase(.Cells(Lig, i)) = "1" Then 'si on trouve un "1" dans la cellule
With Sheets(.Cells(1, i).Value) 'avec la feuille dont le nom est en 1ere ligne (septembre, octobre ...) exclus (paramétrage et Synthèse)
Columns("O:U").Select 'sélectionne les colonnes O à U
Selection.EntireColumn.Hidden = True 'Masque les colonnes sélectionnées
End With
Else
End If
Next i
End Sub
Merci d'avance.
PS le fichier est en pièce jointe au cas ou vous en auriez besoin
id : ADMIN - mdp : admin
novice en macro, j'ai essayé en utilisant des sources de code trouvé sur le forum et avec l'aide de l'enregistreur de macro inclus dans excel de construire une nouvelle macro, mais voila elle ne fonctionne pas.
Pourriez vous y jeter un oeil.
Sub MasqueColonne(Utilisateur As String)
Dim Col As Byte, i As Byte, Lig As Integer, sh As Worksheet
With Sheets("parametrage") 'dans la feuille paramétrage comme on va boucler de la colonne 4 à la dernière colonne, on stocke le n° de la dernière colonne :
Col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column 'on cherche colonne A le nom d'utilisateur saisi et on stocke son numéro de ligne
Lig = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole).Row 'boucle à partir de 4 car Feuil1 toujours affichée
For i = 3 To Col
If UCase(.Cells(Lig, i)) = "1" Then 'si on trouve un "1" dans la cellule
With Sheets(.Cells(1, i).Value) 'avec la feuille dont le nom est en 1ere ligne (septembre, octobre ...) exclus (paramétrage et Synthèse)
Columns("O:U").Select 'sélectionne les colonnes O à U
Selection.EntireColumn.Hidden = True 'Masque les colonnes sélectionnées
End With
Else
End If
Next i
End Sub
Merci d'avance.
PS le fichier est en pièce jointe au cas ou vous en auriez besoin
id : ADMIN - mdp : admin
Pièces jointes
Dernière édition: