Mot de passe utilisateur

Bonjour tout le monde,

J'ai réussi à configurer Excel afin que chaque utilisateur accède uniquement aux feuilles qui lui sont autorisées via un mot de passe grâce à la fiche pratique suivante (qui semble inspiré de celui de ce site, mais en plus simple et gratuit).

Hier tout fonctionnait à merveille mais là, impossible de comprendre on m'indique " Erreur d'éxecution '9': L'indice n'appartient pas à la sélection " quand je me logue et le message d'erreur suivant apparait " Impossible d'exécuter le code en mode arrêt " .

Le débogage me dit que l'erreur vient de la ligne en gras ci-dessous :

Sub AfficheFeuilles(Utilisateur As String) 

Dim Col As Byte, i As Byte, Lig As Integer 
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 dern colonne : 
Col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column 
'on cherche colonne A le nom d'utilisateur saisi et on stocke son num de ligne 
Lig = .Columns(1).Cells.Find(Utilisateur, lookat:=xlWhole).Row 
For i = 3 To Col 
If UCase(.Cells(Lig, i)) = "X" Then 'si on trouve un "X" dans la cellule 
[b]Sheets(.Cells(1, i).Value).Visible = True[/b] 'on affiche la feuille 
Else 
Sheets(.Cells(1, i).Value).Visible = xlSheetVeryHidden 'sinon on la masque 
End If 
Next i 
End With 
End Sub 

J'ai enlevé le code suivant dans ThisWoorkbook pour que vous n'ayez pas besoin de vous loguer:

Private Sub Workbook_Open() 
HorlogeEnG5 

Dim Ws As Worksheet 
'Masque toutes les feuilles sauf la feuille "Feuil1" 
'!!!! ADAPTEZ le nom de la feuille qui doit rester affichée 
For Each Ws In ThisWorkbook.Worksheets 
If Ws.Name <> "vierge" Then Ws.Visible = xlSheetVeryHidden 
Next Ws 
'Charge l'Userform en mémoire 
Load UserForm1 
'Affiche l'Userform 
UserForm1.Show 
End Sub 

Merci d'avance pour votre aide !

Bonjour,

A ta ligne surligné :

Sheets(.Cells(1, i).Value).Visible = True 'on affiche la feuille

Il te manque le nom de ta feuille :

Sheets(("Nom Feuille").Cells(1, i).Value).Visible = True 'on affiche la feuille

Cdlt.


Re,

Petit erreur regarde là :

With Sheets("parametrage")

Ton nom de feuille n'est surement pas bon.

Cdlt.

Bonjour,

Pourtant la feuille se nomme bien " parametrage "

cdlt

Bonjour,

il ne trouve pas la feuille "base de donées" la feuille se nomme "base de données".

Bonjour,

Comment ça se fait ?

bonjour,

c'est juste une faute d'orthographe :

"donée" et "données"

cdt

Francky

Bonjour,

Où voyez vous cette faute ?


ça fait plus de 6h que j'essayais de trouver l'erreur et tout vient finalement d'une faute de frappe..

Merci beaucoup !

le nom de la feuille est "base de données"

dans la feuille paramétrage le nom de la feuille en colonne D est "base de donées", la macro cherche s'il y a une feuille de ce nom-là et ne la trouve pas, d'où l'erreur.

Merci beaucoup, voilà comment une faute de frappe peut devenir un vrai casse tête !

Rechercher des sujets similaires à "mot passe utilisateur"