Problème affichage selon ID + MDP

Bonjour à tous,

Je cherche depuis maintenant 3 jours la solution à mon problème... L'identification grâce à l'ID et au MDP ne fonctionne pas sur le code mais je ne comprends pas pourquoi. De plus je n'ai aucune erreur qui s'affiche donc je ne sais pas comment trouver ce qui me bloque.

Un "compte" est ADMIN avec comme mot de passe ADMIN. J'ai aussi rajouter un petit module pour que vous puissiez afficher les onglets cachés rapidement. Vous trouverez une petite partie de mon fichier en P-J

Si quelqu'un pouvait m'apporter un petit peu d'aide s'il vous plaît

Bonne journée à vous et merci d'avance.

Kitesurf

14v2-pb-acces.xlsm (166.60 Ko)

=>> J'a une piste ! pour moi cela viendrais de la feuille qui gère les accès ! C'est à dire qu'elle n'arrive pas à trouver les noms. Cela à l'air de fonctionner lorsque les ID et MDP sont sur la deuxième ligne mais il reste une "erreur" (voir screen)

err400

Le seul soucis que j'ai trouvé provient de ce code :

Sub AfficheFeuilles(Utilisateur As String)
Dim Col As Byte, i As Byte, Lig As Integer

With Sheets("ACCES") 'dans la feuille ACCES
    '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
            Sheets(.Cells(1, i).Value).Visible = True 'on affiche la feuille
        Else
            Sheets(.Cells(1, i).Value).Visible = xlSheetVeryHidden 'sinon on la masque
        End If
    Next i
End With
End Sub

La feuille "ACCES" a sans doute été modifiée entre deux et les noms des onglets se trouvent en ligne 6 et plus en 1. A remplacer comme ceci :

Sub AfficheFeuilles(Utilisateur As String)
Dim Col As Byte, i As Byte, Lig As Integer

With Sheets("ACCES") 'dans la feuille ACCES
    'comme on va boucler de la colonne 4 à la dernière colonne, on stocke le n° de la dern colonne :
    Col = .Cells(6, .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
            Sheets(.Cells(6, i).Value).Visible = True 'on affiche la feuille
        Else
            Sheets(.Cells(6, i).Value).Visible = xlSheetVeryHidden 'sinon on la masque
        End If
    Next i
End With
End Sub

Bonjour Benoît

Pour l'erreur 404 : Je crois que c'est mes espaces dans mes onglets et les é ou è qui faisaient buguer.

Pour la ligne 6 je suis d'accord merci d'avoir jeter un coup d'oeil neuf Cependant il reste un petit pb, en effet lorsque l'on lance la macro en mode ADMIN >> il nous montre juste les feuilles 1,2,3 et pas celle des accès ou autres et je ne comprends pas pourquoi...

Re,

Problème résolu en mettant un "X" majuscule au lieu d'un "x" minuscule. Sur ce bonne journée et merci encore

Salut tout le monde,

Juste pour donner une astuce/conseil pour ceux qui ont ce genre de problème, quand on manipule des chaines de caractères il vaut mieux des fois passer un

Ucase(String) ou LCase(String

) pour comparer (dans les cas ou la casse importe peu bien sur), du genre

If ucase(TextBoxMotDePasse.text) = « ADMIN05 » then

Cela peut paraitre une protection excessive mais cela peu empêcher un bug de survenir de ce côté-là au moins surtout si l’on ne maitrise pas l’information d’entrée (écriture dans une case par l’utilisateur, textbox a remplir pour un mot de passe par l’utilisateur, etc).

il y a tellement de possibilité pour avoir des bugs que bon une chose de sécurisé c'est pas mal, surtout pour un appel de fonction rapide à mettre en place tel que ucase/lcase

En espérant vous éviter de vous faire piéger

ECG

ExcelCoreGame a écrit :

Salut tout le monde,

Juste pour donner une astuce/conseil pour ceux qui ont ce genre de problème, quand on manipule des chaines de caractères il vaut mieux des fois passer un

Ucase(String) ou LCase(String

) pour comparer (dans les cas ou la casse importe peu bien sur), du genre

If ucase(TextBoxMotDePasse.text) = « ADMIN05 » then

Cela peut paraitre une protection excessive mais cela peu empêcher un bug de survenir de ce côté-là au moins surtout si l’on ne maitrise pas l’information d’entrée (écriture dans une case par l’utilisateur, textbox a remplir pour un mot de passe par l’utilisateur, etc).

il y a tellement de possibilité pour avoir des bugs que bon une chose de sécurisé c'est pas mal, surtout pour un appel de fonction rapide à mettre en place tel que ucase/lcase

En espérant vous éviter de vous faire piéger

ECG

Bonjour ECG.

Ca peut poser un problème ici, il s'agit d'identifiants et de mots de passe.

La casse doit pouvoir jouer sur la vérification.

Oui pas de soucis pour ce cas la (clair qu'un mdp sans casse c'est mon utile) ^^

Le X aurait pu être passer en ucase pour éviter ce problème mais c'était surtout pour donner un pti conseil comme ça aux passage et faire découvrir ces fonctions à ceux qui ne connaissaient pas , no problèmes

ECG

Bonjour

Merci pour les conseils, je ne connais pas du tout ces fonctions je vais me renseigner car je les ai déjà vu Merci !!

Savez-vous pourquoi mettre un X maj dans le code fonctionne alors qu'un x min ne fonctionne pas en ayant pourtant un x min dans mon tableau de gestion des ID et MDP ?

Je trouve ça un peu incompréhensible mais bon ça a marché je ne m'en plains pas mais je ne trouve aucune explication

Bonne journée à tous

If UCase(.Cells(Lig, i)) = "x" Then 'si on trouve un "x" dans la cellule

Voilà ce qui est dans ton code.

Donc en gros tu écris : si X = x alors ...

Si tu veux conserver le minuscule il fallait écrire

If LCase(.Cells(Lig, i)) = "x" Then 'si on trouve un "x" dans la cellule

Très bien Merci Benoit pour tex explications c'est top

Rechercher des sujets similaires à "probleme affichage mdp"