Bonjour tout le monde,
Je viens vers vous car je suis débutant en VBA et pour les besoin de l'entreprise dans laquelle je me trouve, je dois mettre au point un fichier excel qui soit composé d'onglets accessibles par chaque collaborateur.
Pour ce faire, je me suis inspiré d'un programme trouvé sur internet, que j'ai modifié quelque peu (rien de bien méchant, surtout en termes de noms ...).
Le programme demande un identifiant et un mdp. Si le mdp est bon, il choisit la ligne du tableau correspondant à l'identifiant et commence à boucler à partir de la colonne voulue (7) jusqu'à la dernière colonne (36) afin de repérer les cellules remplies d'un "x". Auquel cas, il montre l'onglet. Dans le cas contraire, il le cache.
Les variables prennent bien les valeurs voulues, et lorsque je modifie en brut cela semble marcher, mais le programme que je souhaite ci-dessous ne veut rien entendre, il m'indique une erreur à la ligne en rouge. Et là j'avoue je ne vois pas d'où cela peut venir.
Si vous avez une idée.
Message d'erreur :Sub AfficheFeuilles(Identifiant As String)
Dim i As Integer, Lig As Integer
With Sheets("Gestion")
'dans la feuille Gestion comme on va boucler de la colonne G : 7 à la colonne AJ : 36
'on cherche colonne E l'identifiant saisi et on stocke son num de ligne
Lig = .Columns(5).Cells.Find(Identifiant, lookat:=xlWhole).Row
For i = 7 To 36
If UCase(.Cells(Lig, i)) = "x" Then
'si on trouve un "x" dans la cellule
Sheets(.Cells(5, i).Value).Visible = True
'on affiche la feuille
Else
Sheets(.Cells(5, i).Value).Visible = xlSheetVeryHidden
'sinon on la masque
End If
Next i
End With
End Sub
Dans l'exemple ci-dessus, je choisi le collaborateur admin (accès à tous les onglets). Il se trouve en ligne 32.Erreur d'exécution '1004':
Impossible de définir la propriété Visible de la classe Worksheet
Les variables ont les valeurs suivantes lors du débogage :
Lig = 32
i = 7
Aperçu du tableau :
Merci d'avance pour votre aide !!
Partager