For Each ... Next

link78180 Messages postés 35 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 22 décembre 2004 - 23 nov. 2004 à 18:59
link78180 Messages postés 35 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 22 décembre 2004 - 24 nov. 2004 à 14:14
Salut.
Hier, j'ai acheté un livre sur le Visual Basic, apprenant les bases etc... là j'en suis à la partie concernant les structures de contrôles For Each ... Next, et je n'y comprend rien du tout, malgré l'explication donnée ds le livre.

Un exemple à été donné, j'ai compris le but de la fonction, mais je ne comprend absolument pas la syntaxe du code, ses variables, enfin le code quoi.

Le voici :

----------------------------------------------------------------------------

Private Sub cmdRech_Click()
Dim Motif As String
Dim Elt As Variant
Dim trouve As Boolean
trouve = False
Motif = InputBox("Chercher le motif " & _
"(Préfix ou Suffixe) suivant :")
For Each Elt In txtMotif
If StrComp(Motif, Elt.Text) = 0 Then
MsgBox "Motif trouvé", vbkoonly, _
"Résultat de la recherche"
trouve = True
Exit For
End If
Next
If Not trouve Then
MsgBox "Motif non trouvé", vbOKOnly, _
"Résultat de la recherche"
End If
For Each Elt In txtMotif
Elt.Text = ""
Next
End Sub

----------------------------------------------------------------------------

Ceci représente un programme ou l'on doit taper 2 mots dans 2 TextBoxs, étant dans un groupe de contrôle. Si on clique sur Rechercher, une invite est ouverte, nous permettant de taper le mot à rechercher dans les 2 cases, puis quand on clique sur OK, le programme nous dit si il a trouvé le mot ou pas dans les 2 cases.

Voilà, alors SVP, expliquez-moi un peu comment ca fonctionne, au niveau du code. Je vous en remercie d'avance.

3 réponses

cs_Benouille Messages postés 215 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 7 septembre 2007
23 nov. 2004 à 21:21
il y a plusieurs types de boucles, le for each en est une.
en français ce la donne:
For Each Elt In txtMotif
Pour Chaque Element dans motif
...
Next
suivant

autrement dit, il parcourt tous les Elt de Motif

y a effectivement une erreur puisque motif devient txtmotif on ne sait pas trop pourquoi.

le for each est utile quand tu ne connais pas le nombre d'éléments et que tu veux tous les parcourir.

Benouille la grenouille :approve)
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
23 nov. 2004 à 22:48
Private Sub cmdRech_Click()

Dim Motif As String
'Là tu dimensionne Motif en chaine de caractère

Dim Elt As Variant
'Un Variant peu contenir n'importe quoi string, tableau,
'objet il utilise beaucoup de resource

Dim trouve As Boolean
'Un Boolean peu avoir deux valeurs True vrai ou Fasle Faux
'il utilise un bit

trouve = False
'Là tu affecte à trouve la valeur Fasle ou si tu préfère Faux

Motif = InputBox("Chercher le motif " & _
"(Préfix ou Suffixe) suivant :")
'InputBox est une fonction qui va te servir a rentrer une valeur au clavier, cette valeur va se retrouvée dans Motif pour avoir des info mets le curseur sur inputbox et tappes F1

For Each Elt In txtMotif
If StrComp(Motif, Elt.Text) = 0 Then
MsgBox "Motif trouvé", vbkoonly, _
"Résultat de la recherche"
trouve = True
Exit For
End If
Next
Pour la boucle tu as les explications plus haut
Msgbox et une fonction qui ouvre une boite de message

If Not trouve Then
MsgBox "Motif non trouvé", vbOKOnly, _
"Résultat de la recherche"
End If
For Each Elt In txtMotif
Elt.Text = ""
Next
End Sub

Dans tous les cas il ne faut pas hésiter à utiliser l'aide en ligne
_______________________________________

Jean-Paul

Le Savoir n'a de valeur que s'il est partagé
0
link78180 Messages postés 35 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 22 décembre 2004
24 nov. 2004 à 14:14
merci beaucoup, j'ai compri maintenan ;)
0
Rejoignez-nous