VBA | Excel | Formulaire Login
Résolu
amerex
Messages postés
12
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour!
J'ai écrit un code permettant de "sécuriser" l'accès à un programme Excel:
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 :
Est-ce que ça peut se faire...?
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:
- VBA | Excel | Formulaire Login
- Whatsapp formulaire opposition - Guide
- Liste déroulante excel - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
7 réponses
Svp, j'aimerais vraiment que quelqu'un essaie de m'aider, je ne trouve rien dans tout l'internet, en francais et en anglais...
Bonjour,
je dirais par un simple test mais sûrement que ton pb est autre et que tu n'as pas tout dit
eric
je dirais par un simple test mais sûrement que ton pb est autre et que tu n'as pas tout dit
eric
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 :)
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 :)
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question