VBA | Excel | Formulaire Login

Résolu/Fermé
amerex Messages postés 12 Date d'inscription samedi 22 septembre 2007 Statut Membre Dernière intervention 14 février 2008 - 22 sept. 2007 à 15:43
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 24 mars 2008 à 19:34
Bonjour!
J'ai écrit un code permettant de "sécuriser" l'accès à un programme Excel:

Dim user As Variant
Dim mdp As Variant
Dim prenom As Variant
Dim nom As Variant


Sheets("_dta").Range("K7").Value = (txtuser.Text)
prenom = Sheets("_dta").Range("K8").Value
nom = Sheets("_dta").Range("K9").Value
mdp = Sheets("_dta").Range("k12").Value
Label4.Caption = prenom & " " & nom


Mais le problème est que si l'utilisateur entre un user erroné, le debugger s'ouvre.
Ce que j'aimerais, c'est que si l'utilisateur entre un user erronné, que :

Label4.Caption="Identifiant de l'utilisateur erronné..."


Est-ce que ça peut se faire...?
A voir également:

7 réponses

amerex Messages postés 12 Date d'inscription samedi 22 septembre 2007 Statut Membre Dernière intervention 14 février 2008 4
24 sept. 2007 à 04:09
Svp, j'aimerais vraiment que quelqu'un essaie de m'aider, je ne trouve rien dans tout l'internet, en francais et en anglais...
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 207
24 sept. 2007 à 07:14
Bonjour,

je dirais par un simple test mais sûrement que ton pb est autre et que tu n'as pas tout dit
eric
0
amerex Messages postés 12 Date d'inscription samedi 22 septembre 2007 Statut Membre Dernière intervention 14 février 2008 4
24 sept. 2007 à 15:13
Oui je crois avoir tout dit... je vous donne plus d'infos:

J'ai une feuille nommée _dta dans laquelle :

Lorsqu'on écrit le login, le userform transpose le user à K7.
K8 a une fonction RECHERCHEV, qui donne le prénom.
K9 a une fonction RECHERCHEV, qui donne le nom.
K10 a une fonction RECHERCHEV, qui donne le département.
K11 a une fonction RECHERCHEV, qui donne le grade.
K12 a une fonction RECHERCHEV, qui donne le mot de passe.

Les variables vont chercher les informations, que les fonctions RECHERCHEV ont trouvées.

Mais c'est là que ça ne fonctionne plus. Lorsque la fonction RECHERCHEV ne trouve pas les infotmations reliées au login, la valeur de la cellule est #N/A. VBA ne semble pas reconnaitre et me lance dans le debugger... est-ce que c'est possible de remédier ?

Merci :)
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 207
24 sept. 2007 à 17:32
Ahhh ok
Dans un 1er temps sur la feuille tu peux utiliser la fonction ESTNA()
Pour tester plus largement les erreurs tu as aussi ESTERREUR et ESTERR
Par exemple dans L9 =si(ESTNA(K9);"";K9) ce qui te donnera soit une chaine vide au lieu d'une valeur d'erreur, soit le nom.

Et si tu la traites en vba tu peux utiliser les valeurs d'erreurs suivantes:
Constante Numéro de l'erreur Valeur d'erreur de cellule
xlErrDiv0 2007 #DIV/0!
XlErrNA 2042 #N/A
xlErrName 2029 #NAME ?
XlErrNull 2000 #NULL!
XlErrNum 2036 #NUM!
XlErrRef 2023 #REF!
XlErrValue 2015 #VALUE!

avec la fonction CVErr()
if [K9].value = CVErr(xlErrNA) then
(non testé mais ça ne doit pas etre loin)

D'autre part peut-être que ça t'interessera, j'avais récupéré un module à importer pour récuperer automatiquement l'identifiant de l'utilisateur connecté(en intranet ça marche très bien, non testé sur un poste isolé).
Obligé de la mettre en rtf pour le déposer sur cijoint, tu as juste à remplacer l'extension par .bas pour l'importer dans excel vba
Et désolé pour l'auteur mais je ne me rappelle plus la source...
http://www.cijoint.fr/cij16693958826651.rtf

J'espère que ça répond bien à ton pb
eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amerex Messages postés 12 Date d'inscription samedi 22 septembre 2007 Statut Membre Dernière intervention 14 février 2008 4
24 sept. 2007 à 19:17
Merci 1000 fois!

Tout fonctionne maintenant! J'ai utilisé ce code:
if Range("K9").Value = CVErr(xlErrNA) Then 

Merci!
0
bobtipitt Messages postés 61 Date d'inscription dimanche 23 mars 2008 Statut Membre Dernière intervention 16 août 2010 2
24 mars 2008 à 18:30
ouai mes ton site "eriic" ne marche pas
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 207
24 mars 2008 à 19:34
Bonjour,
de rien
0