Boucle sur textbox d'une frame

Bonjour à tous,

mon cas est surment simple à résoudre pour des experts que vous êtes, mais pour moi, cela fait plusieurs heures que je planche sur le sujet ....

je voudrais faire une boucle (for each) sur plusieurs Textbox d'une Frame afin de savoir si l'une d'elle (TextBox) est renseignée et si c'est le cas, inscrire "tyty" dans la TextBoxtoto sinon fermer (Visible=False) la Frame

par avance merci

LL

Bonjour

Si tes TextBox sont numérotées dans l'ordre TextBox1, TextBox2 etc...

For I = 1 To 2
If Me.Controls("TextBox" & I) <> "" Then
Me.TextBoxToto="tyty"
End If
Next I

Ton fichier serait un plus

Bsr banzai et merci pour réactivité mais malheureusement les textbox ne se suivent pas, par contre, ils sont ds une frame (frame18) j, imaginais plis un code comme : for each ......

Pour le fichier j'essaierai de faire quelque chose demain

Bonsoir

En attendant ton fichier

Private Sub CommandButton1_Click()
Dim Ctrl As Control

  For Each Ctrl In Me.Frame18.Controls
    If TypeOf Ctrl Is msforms.TextBox Then
      If Ctrl.Name = "Ce_TextBox" And Ctrl.Value <> "" Then
        Me.TextBoxToto = "tyty"
        Exit For
      End If
    End If
  Next Ctrl
End Sub

Bonjour Banzai,

Comme convenu je te joins le fichier complet.

Le code en question concerne, dans un premier temps, l'userform7où je voudrai, en cliquant sur le bouton valider, que :

  • si au moins un Textbox de la Frame18 est renseigné alors la Valeur du Textbox57 = "tyty" et que la Frame19.enable=false
  • ou si au moins un Textbox de la Frame19 est renseigné alors la Valeur du Textbox57 = "toto" et que la Frame18.enable=false

voilà ce que je souhaite faire ... et espére avoir été clair

A te lire

LL

101bdd-process-006.xlsm (201.48 Ko)

Bonjour

Remplaces la fin de la macro

Dim CtrlA As Control

    For Each CtrlA In Frame18.Controls
      If TypeOf CtrlA Is msforms.TextBox And CtrlA.Value <> "" Then
        TextBox57.Value = "INTER-OP"
        Frame19.Enabled = False
        Exit For
      End If
    Next CtrlA
    If TextBox57.Value <> "INTER-OP" Then
      For Each CtrlA In Frame19.Controls
        If TypeOf CtrlA Is msforms.TextBox And CtrlA.Value <> "" Then
          TextBox57.Value = "FINAL"
          Frame18.Enabled = False
          Exit For
        End If
      Next CtrlA
    End If
   Selection.AutoFilter
End Sub

encore merci Banzai,

ça fonctionne trés bien quand ds ma selction via les Combo je choisi : "site snop/snwm = Gerardmer" ce qui rempli la Frame18 par contre, quand je choisi : "site snop/snwm = Besançon" ce qui rempli la Frame19 ça bug "erreur 438-Propriété ou méthode non gérée ..."

A+

LL

Bonjour

Désolé : Il faut séparer les tests

Dim CtrlA As Control

  For Each CtrlA In Frame18.Controls
    If TypeOf CtrlA Is msforms.TextBox Then
      If CtrlA.Value <> "" Then
        TextBox57.Value = "INTER-OP"
        Frame19.Enabled = False
        Exit For
      End If
    End If
  Next CtrlA
  If TextBox57.Value <> "INTER-OP" Then
    For Each CtrlA In Frame19.Controls
      If TypeOf CtrlA Is msforms.TextBox Then
        If CtrlA.Value <> "" Then
          TextBox57.Value = "FINAL"
          Frame18.Enabled = False
          Exit For
        End If
      End If
    Next CtrlA
  End If
  Selection.AutoFilter
End Sub

c'etait donc ça ... ça marche nickel

encore merci

@+

LL

Rechercher des sujets similaires à "boucle textbox frame"