XL 2016 Problème avec ligne de commande dans Userform

scoubidou35

XLDnaute Occasionnel
Bonjour,

J'ai créé un formulaire avec un nom d'utilisateur et un mot de passe pour autoriser l'accès à certaines feuilles ou pas selon l'utilisateur
Mais je ne comprends pas mon code ne marche pas et j'ai une ligne de commande qui bug à chaque fois et qui me bloque.
Merci d'avance
 

Pièces jointes

  • Fichier test.xlsm
    169.9 KB · Affichages: 9
Solution
Avez vous regardé l'option de Récupération d'erreur ?
(Alt+OO, page Général)
Rappel: vous dites que ça plante sur L = WorksheetFunction.Match(etc.
Or celui ci est juste derrière un On Error Resume Next.
Ça ne peut signifier qu'une chose : C'est "Arrêt sur toutes les erreurs" qui est coché, de sorte que le On Error est ignoré.

scoubidou35

XLDnaute Occasionnel
Bonsoir
Elle fait 48 colonnes votre Rng, avec le titre fusionné jusqu'en AV !
Peut être auriez vous intérêt à l'initialiser comme Worksheets("MEMBERS").ListObjects(1).DataBodyRange plutôt que Worksheets("MEMBERS").UsedRange.
Bonjour Dranreb
Merci de vous être penché sur mon problème
J'ai modifié la commande comme vous l'avez suggéré mais ca ne fonctionne pas.
Quand je click sur le bouton connexion dans la feuille LOGIN (feuille qui s'affiche à l'ouverture du fichier) j'ai bien l'userform qui apparait mais après quelques soit les actions (faux ou vrai identifiants et mdp) rien ne se passe pourtant j'ai bien mis les conditions, j'indique bien où aller chercher les informations (le tableau dans la feuille MEMBERS) et même quelles feuilles qui sont accessibles ou pas pour chaque utilisateur (visible ou super caché).
Bonne journée
 

Dranreb

XLDnaute Barbatruc
Je me suis borné à chercher la cause d'un plantage que j'ai eu c'est tout.
Et ça semblait venir d'un indice en dehors des limites, et j'en ai conclu que c'était parce que vous cherchiez des croix là ou il n'y en avait plus …
L'indice de colonne valait 48 là où ça plantait.
Après ça plante peut être encore ailleurs, c'est bien possible.
 
Dernière édition:

scoubidou35

XLDnaute Occasionnel
Bonsoir à tous,
Bon alors, J'ai passé une bonne partie de ma journée à chercher le problème mais je n'ai pas avancé... je ne trouve pas d'où viens le problème. J'ai l'impression que le code ne va pas chercher les informations ou il faut et que du coup cela expliquerait que rien ne se passe.
ou que le code n'est pas bon du tout.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
J'ai rouvert votre classeur.
Écrit comme ça c'est bien prometteur, au moins :
VB:
Option Explicit
Private Sub CheckBox1_Click()
   If Form_Connexion.CheckBox1.Value = False Then
      Form_Connexion.mdp.PasswordChar = "*"
   Else
      Form_Connexion.mdp.PasswordChar = Empty
      End If
   End Sub
Private Sub fermer_Click()
   Unload Me
   End Sub
Private Sub validation_Click()
   Dim LOt As ListObject, Code As String, NUser As String, TTit(), TDon(), L As Long, C As Long
   Code = mdp.Value
   NUser = identifiant.Value
   Set LOt = Worksheets("MEMBERS").ListObjects(1)
   If Code = "" And NUser = "" Then
      MsgBox "Veuillez entrer vos identifiants", vbExclamation
      Exit Sub: End If
   On Error Resume Next
   L = WorksheetFunction.Match(NUser, LOt.ListColumns("Users").DataBodyRange, 0)
   If Err Then
      MsgBox "Utilisateur inexistant", vbExclamation
      Exit Sub: End If
   On Error GoTo 0
   TTit = LOt.HeaderRowRange.Value
   TDon = LOt.ListRows(L).Range.Value
   If Code = TDon(1, 2) Then
      For C = 6 To UBound(TTit, 2)
         Worksheets(TTit(1, C)).Visible = IIf(IsEmpty(TDon(1, C)), xlSheetVeryHidden, xlSheetVisible)
         Next C
      Sheets("Sommaire").Activate
   Else
      MsgBox "Mot de passe incorrect", vbExclamation
      End If
   End Sub
 

scoubidou35

XLDnaute Occasionnel
Bonsoir.
J'ai rouvert votre classeur.
Écrit comme ça c'est bien prometteur, au moins :
VB:
Option Explicit
Private Sub CheckBox1_Click()
   If Form_Connexion.CheckBox1.Value = False Then
      Form_Connexion.mdp.PasswordChar = "*"
   Else
      Form_Connexion.mdp.PasswordChar = Empty
      End If
   End Sub
Private Sub fermer_Click()
   Unload Me
   End Sub
Private Sub validation_Click()
   Dim LOt As ListObject, Code As String, NUser As String, TTit(), TDon(), L As Long, C As Long
   Code = mdp.Value
   NUser = identifiant.Value
   Set LOt = Worksheets("MEMBERS").ListObjects(1)
   If Code = "" And NUser = "" Then
      MsgBox "Veuillez entrer vos identifiants", vbExclamation
      Exit Sub: End If
   On Error Resume Next
   L = WorksheetFunction.Match(NUser, LOt.ListColumns("Users").DataBodyRange, 0)
   If Err Then
      MsgBox "Utilisateur inexistant", vbExclamation
      Exit Sub: End If
   On Error GoTo 0
   TTit = LOt.HeaderRowRange.Value
   TDon = LOt.ListRows(L).Range.Value
   If Code = TDon(1, 2) Then
      For C = 6 To UBound(TTit, 2)
         Worksheets(TTit(1, C)).Visible = IIf(IsEmpty(TDon(1, C)), xlSheetVeryHidden, xlSheetVisible)
         Next C
      Sheets("Sommaire").Activate
   Else
      MsgBox "Mot de passe incorrect", vbExclamation
      End If
   End Sub
Merci Dranreb pour le temps passé.

J'ai testé en ne remplissant pas les champs dans l'userform et ça marche j'ai bien le message
Veuillez entrer vos identifiants

Puis, J'ai saisi un nom users qui n'existe pas dans la liste "members" dans la fenêtre de l'userform sans taper de mot de passe
le code bug à la ligne :
L = WorksheetFunction.Match(NUser, LOt.ListColumns("Users").DataBodyRange, 0)

j'ai essayé en mettant :
L = WorksheetFunction.Match(NUser, LOt.Columns("A").DataBodyRange, 0)

Mais ça ne change rien
 

patricktoulon

XLDnaute Barbatruc
Bonjour
il aurait peut être aussi nous donner le mot de passe du vbproject
chez moi il y a des reférence manquantes
et des que je veux aller dans outils réference
demo.gif
 

scoubidou35

XLDnaute Occasionnel
Bonjour
il aurait peut être aussi nous donner le mot de passe du vbproject
chez moi il y a des reférence manquantes
et des que je veux aller dans outils réference
Regarde la pièce jointe 1164305
Bonjour patricktoulon.

C'est bizarre je n'ai pas de problème chez moi, et à priori chez Dranreb aussi mais voici donc le fichier. Dites moi si vous avez toujours le problème. Merci
 

Pièces jointes

  • Fichier test (1).xlsm
    169.9 KB · Affichages: 1

Dranreb

XLDnaute Barbatruc
Avez vous regardé l'option de Récupération d'erreur ?
(Alt+OO, page Général)
Rappel: vous dites que ça plante sur L = WorksheetFunction.Match(etc.
Or celui ci est juste derrière un On Error Resume Next.
Ça ne peut signifier qu'une chose : C'est "Arrêt sur toutes les erreurs" qui est coché, de sorte que le On Error est ignoré.
 
Dernière édition:

scoubidou35

XLDnaute Occasionnel
Avez vous regardé l'option de Récupération d'erreur ?
(Alt+OO, page Général)
Rappel: vous dites que ça plante sur L = WorksheetFunction.Match(etc.
Or celui ci est juste derrière un On Error Resume Next.
Ça ne peut signifier qu'une chose : C'est "Arrêt sur toutes les erreurs" qui est coché, de sorte que le On Error est ignoré.
Bonjour, oui je viens de regarder et ça ne me donne plus de message.
Merci beaucoup
Bonne journée
 

Discussions similaires

Réponses
1
Affichages
230

Statistiques des forums

Discussions
314 631
Messages
2 111 389
Membres
111 119
dernier inscrit
cooc