XL 2016 Tabulation automatique entre deux textbox dans une feuille de calcul

ReneDav14000

XLDnaute Occasionnel
Bonsoir le forum,
Je reviens vers avec ce code qui devrait me permettre de tabuler d'une TextBox à une autre dès lors qu'il y a 7 caractères de saisis.
Je remercie p56 pour son code qui m'a beaucoup aidé à remplacer les caractères alpha par des * au moment de la frappe.
Toutefois je rencontre un petit problème que j'espère vous m'aiderez à résoudre, car la tabulation ne se fait pas entre les TextBox.
USER correspond à la TextBox2 et Mdp à la TextBox1.
Donc quand USER a 7 caractères de saisis, il devrait tabuler vers MdP mais ça ne fonctionne pas.
Pourriez-vous jeter un œil à mon code et me dire ce qui ne va pas ?
Je n'ai mis qu'un seul code car l'autre est identique à part que les noms des textboxs changent
Je vous en remercie par avance



VB:
Private Sub MdP_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    
    If KeyCode > 64 And KeyCode < 91 Then
                passe = passe & Chr(KeyCode)
                Me.MdP.Value = WorksheetFunction.Rept("*", Len(passe) - 1)
      
      'Si la TextBox contient 7 caractères alors tabuler vers USER
                If KeyCode = 7 Then
                Me.USER.Activate

    Else
        Me.MdP.Value = WorksheetFunction.Rept("*", Len(passe))
        passe = ""
        Me.MdP.Value = ""
        
        Me.MdP.Activate
                End If
    
    End If

End Sub
 
Solution
bonjour une démo
le textbox est déjà en password="*"
le textbox user 7 caracteres max
le textbox mdp n'a pas de limite

dans la feuille 2 la liste des utilisateurs qui doit être cachée
si l'utilisateur est inconnu ou mot de passe correspond pas a l'utilisateur tapé ben bye!bye!
ajouter éventuellement des utilisateur dans le tableau

Eric C

XLDnaute Barbatruc
Bonsoir le forum
Bonsoir ReneDav14000

Si c'est uniquement pour passer d'un TxtBox1 à TextBox2 si le nombre de caractères saisi est atteint alors :
VB:
Option Explicit

Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) = TextBox1.MaxLength Then TextBox2.SetFocus
End Sub

Private Sub UserForm_Initialize()
TextBox1.MaxLength = 7
End Sub

Bonne soirée
@+ Eric c
 

Eric C

XLDnaute Barbatruc
Re le fil

@ReneDav14000 - Oui, il te faut mettre AutoTab à True - Donc pour des contrôles ActiveX :
Propriétés TextBox1 : AutoTab à True - MaxLenght = 7
VB:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If Len(TextBox1) = TextBox1.MaxLength - 1 Then
TextBox1 = TextBox1 + Chr(KeyAscii)
TextBox2.Activate
End If
End Sub
Il n'y a plus qu'à adapter.
@+ Eric c
 

ReneDav14000

XLDnaute Occasionnel
Re le fil

@ReneDav14000 - Oui, il te faut mettre AutoTab à True - Donc pour des contrôles ActiveX :
Propriétés TextBox1 : AutoTab à True - MaxLenght = 7
VB:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If Len(TextBox1) = TextBox1.MaxLength - 1 Then
TextBox1 = TextBox1 + Chr(KeyAscii)
TextBox2.Activate
End If
End Sub
Il n'y a plus qu'à adapter.
@+ Eric c
Super ça fonctionne.
Merci beaucoup Eric
Bonne soirée
 

patricktoulon

XLDnaute Barbatruc
bonjour une démo
le textbox est déjà en password="*"
le textbox user 7 caracteres max
le textbox mdp n'a pas de limite

dans la feuille 2 la liste des utilisateurs qui doit être cachée
si l'utilisateur est inconnu ou mot de passe correspond pas a l'utilisateur tapé ben bye!bye!
ajouter éventuellement des utilisateur dans le tableau
 

Pièces jointes

  • user_Mdp renedav14000.xlsm
    24.9 KB · Affichages: 3

ReneDav14000

XLDnaute Occasionnel
bonjour une démo
le textbox est déjà en password="*"
le textbox user 7 caracteres max
le textbox mdp n'a pas de limite

dans la feuille 2 la liste des utilisateurs qui doit être cachée
si l'utilisateur est inconnu ou mot de passe correspond pas a l'utilisateur tapé ben bye!bye!
ajouter éventuellement des utilisateur dans le tableau
Bonjour le forum, bonjour patrick,
Merci pour ton code. Je vais regarder ce que cela donne chez moi, mais il n'y a pas de raison que cela ne fonctionne pas.
Cependant, est-ce que tu pourrais m'expliquer cette ligne s'il te plaît ? Je n'arrive pas à comprendre son rôle.
"Application.IfError(Application.Match("patrick", Application.Transpose(liste.Value), 0), 0)"
Dans ta feuille "listex" est-ce que le nom donné au tableau doit englober également la partie où il y a des X afin d'autoriser ou pas l'accès à certaines feuilles ?

Sinon, tu en est où dans ton défit d'horloge numérique ? L'horloge analogique que tu m'as fourni plait bien à mon donneur d'ordre. Encore merci.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour @ReneDav14000
question:1
VB:
"Application.IfError(Application.Match("patrick", Application.Transpose(liste.Value), 0), 0)"
ca te donne l'index de ligne dans la feuille ou se trouve le user tapé dans le texte box
et renvoie 0 si il n'y est pas
renplace "patrick par user.text (bien évidemment )

question2:
Sinon, tu en est où dans ton défit d'horloge numérique ? L'horloge analogique que tu m'as fourni plait bien à mon donneur d'ordre. Encore merci.
j'ai pris parti de vous faire carément un interface de fabrication a votre gout avec plein d'option
style du fond
style du contour
style des aiguilles
le style de cadran(graduation)
style des chiffres

tout les style comprennent le choix de (couleur ,couleur (2)dégradé et son orientation et style , des textures
le resultat de l'interface donnera un code VBA a mettre dans un module tel que je te l'ai donné pour la bublewaterwatch
c'est du boulot il va falloir être patient
 

ReneDav14000

XLDnaute Occasionnel
Merci beaucoup pour ton investissement.
Ton code fonctionne très bien. Merci pour ça également.

Je vais ouvrir une autre conversation car j'ai une feuille2 avec les mêmes propriétés que ThisWorkBook qui s'est incrustée dans mon fichier et je ne sais pas d'où elle vient :oops:
 

Discussions similaires

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 154
dernier inscrit
jefferson6488