Affichage de zone de texte

Résolu
slt, dans mon userform j'ai plusieurs texte box que je dois remplir en fonction de mes donnés; et les laisser vide ne me plait pas ; ce que je souhaite faire et que a chaque remplissage d'une textbox je click sur le bouton VALIDER; et le textbox suivant s'affiche automatiquement.
trés cordialement ABDELLAH

3 réponses

  1. Modérateur
    Bonjour,

    a chaque remplissage d'une textbox je click sur le bouton VALIDER
    Tu parles d'une ergonomie...

    Cela concerne combien de TextBox?
    Est-ce que cela concerne tous les TextBox de ton UserForm ou seulement certains?
    1. merci,
      non certains TextBox , pas tous
  2. Modérateur
    Un exemple à adapter et tester :

    Option Explicit
    
    Private TxtSpec
    Private Indice As Integer
    Private NoEvents As Boolean
    
    Private Sub UserForm_Activate()
    Dim T
       TxtSpec = Array(TextBox1, TextBox3, TextBox5, TextBox7, TextBox9) 'liste des textbox à cacher
       Indice = -1
       For Each T In TxtSpec
          T.Visible = False
       Next T
       AuSuivant 'On affiche le premier des textboxes cachés et on lui donne le focus
       NoEvents = True
    End Sub
    
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If NoEvents Then AuSuivant
    End Sub
    
    Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If NoEvents Then AuSuivant
    End Sub
    
    Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If NoEvents Then AuSuivant
    End Sub
    
    Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If NoEvents Then AuSuivant
    End Sub
    
    Private Sub TextBox9_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If NoEvents Then AuSuivant
    End Sub
    
    Private Sub AuSuivant()
    'Affiche le TextBox masqué et lui donne le focus
       NoEvents = False
       If Indice < UBound(TxtSpec) Then
          Indice = Indice + 1
          With TxtSpec(Indice)
             .Visible = True
             .SetFocus
          End With
       End If
       NoEvents = True
    End Sub