Parcours de textebox dans userform

Résolu
Signaler
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011
-
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011
-
bonjour à tous je suis nouveau dans  le monde des macros vb je suis actuellement en stage et ma mission et de créer un logiciel avec solidwork de façon à générer automatique des segment de piston de voiture, mobylette, aviation ....
puis par la suite faire automatiquement la mise en plan, actuellement tout sa fonctionne très bien, je suis dans la phase d' éradication des erreurs.
donc mon probleme est très simple j'ai environ 70 textbox sur mon userform et je voudrai toutes les parcourir pour savoir s'il n'y en a pas une de vide (dans ce cas mon programme plante) j'ai donc commencer à faire quelque chose mais en vain

  
Dim textbox As Varient
Dim i As Integer
For i = 1 To 70
      If  textbox ( i ) = vide Then
msg = ("textbox vide")
reponse = msgbox(msg, vbOkOnly, "erreur")
Else
GoTo Line1
End If
Next i

line1: 'suite du programme....

Voila merci et bon courage

3 réponses

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
bonjour
plusieurs chose:
quel est le message d'erreur?
est ce que tes textbox sont groupée (est ce qu'elle ont un indice?)
pourquoi déclarer une variable qui porte le nom de ta textbox? de plus ce n'est pas :If  textbox ( i ) vide Then mais If  textbox ( i ) "" Then
d'autre par ton GoToline1 tel qu'il est placé fait que dès que tu as trouvé une textbox non vide tu sors de la boucle et donc tu ne testes pas les autres (de plus évites les goto c'est "ringard" )
une derniere suggestion plutot que
msg = ("textbox vide")
fais plutot
msg = ("textbox " & i & " vide")
comme ça tu auras dans ton message le numéro de la textbox vide  (quand il y en a 70 ça peut être pratique

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Userform, macro, textbox1... tu sembles être sous Excel, donc VBA et pas VB. Regarde ma signature...

Comme il n'y a pas de possibilité d'indexer les contrôles sous VBA Excel, mais  seulement sous VB6, tu dois passer par la collection Controls

For 1 = 1 to 70
    If Me.Controls("Textbox" & i) = "" Then
       msgbox "Le textbox: Textbox" & i & " est vide", vbExclamation, "MonProgramme"
    End If
Next

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

merci beaucoup pour votre aide sa va m' évité de passer une journée à me prendre la tete 
encore merci a+++