VBA excel For Each trouver élément suivant
Résolu
Paninak
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
Paninak Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Paninak Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous
J'aimerais savoir s'il existe un moyen de passer à l'élément suivant dans un For Each quand la condition est remplie.
exemple:
For Each element In Stat 'Stat est un array à 1 dimension
If Flag = element Then ' trouver l'élément suivant
Next element
Merci aux pros
J'aimerais savoir s'il existe un moyen de passer à l'élément suivant dans un For Each quand la condition est remplie.
exemple:
For Each element In Stat 'Stat est un array à 1 dimension
If Flag = element Then ' trouver l'élément suivant
Next element
Merci aux pros
A voir également:
- Boucle for each vba
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Instagram for pc - Télécharger - Divers Communication
- Microsoft store download for pc - Guide
5 réponses
Bonjour,
Le plus simple est d'utiliser un goto comme ceci :
For Each element In Stat
...
If Flag = element Then GoTo SUIVANT
...
SUIVANT:
Next element
A+
Cordialement,
Le plus simple est d'utiliser un goto comme ceci :
For Each element In Stat
...
If Flag = element Then GoTo SUIVANT
...
SUIVANT:
Next element
A+
Cordialement,
Bonjour Pilas,
Je ne comprends pas trop l'intérêt du suivant.
Ce que je voudrais c'est avoir l'element qui suit celui qui a été comparé.
Si dans Stat j'ai "lundi, mardi, mercredi" et que Flag = mardi, j'aimerai que element passe à mercredi avant de sortir de la boucle.
Est_ce possible?
Merci pour ton aide
Je ne comprends pas trop l'intérêt du suivant.
Ce que je voudrais c'est avoir l'element qui suit celui qui a été comparé.
Si dans Stat j'ai "lundi, mardi, mercredi" et que Flag = mardi, j'aimerai que element passe à mercredi avant de sortir de la boucle.
Est_ce possible?
Merci pour ton aide
Ajout explications
j'y arrive avec ce code
For i = 1 To UBound(Stat)
If Flag = Stat(i, 1) Then
If i = UBound(Stat) Then i = LBound(Stat) Else i = i + 1
Flag = Stat(i, 1): i = UBound(Stat)
End If
Next i
Mais j'essaie d'apprendre et je ne vois pas comment faire la même chose avec For Each
j'y arrive avec ce code
For i = 1 To UBound(Stat)
If Flag = Stat(i, 1) Then
If i = UBound(Stat) Then i = LBound(Stat) Else i = i + 1
Flag = Stat(i, 1): i = UBound(Stat)
End If
Next i
Mais j'essaie d'apprendre et je ne vois pas comment faire la même chose avec For Each
Re Bonjour,
J'ai regardé ton code effectivement, le "for each" n'est pas trés adapté car il n'existe pas d'instruction pour lui dire de "prendre le suivant".
La seule solution que j'ai trouvée c'est d'utiliser un booléén pour dire que l'on a trouvé lors d'une itération et qu'il faudra prendre la valeur à l'itération suivante.
Voila ce que cela donne :
si on sort du for avec OK vrai alors c'est le dernier élément qui est trouvé et on reprend le 1°.
PS : Au fait par défaut le Lbound est zéro donc je suppose que dans ta déclaration tu as mis Dim stat (1 to ...)
A+
Cordialement,
J'ai regardé ton code effectivement, le "for each" n'est pas trés adapté car il n'existe pas d'instruction pour lui dire de "prendre le suivant".
La seule solution que j'ai trouvée c'est d'utiliser un booléén pour dire que l'on a trouvé lors d'une itération et qu'il faudra prendre la valeur à l'itération suivante.
Voila ce que cela donne :
Dim OK As Boolean OK = False For Each Element In stat If OK Then Flag = Element OK = False Exit For End If OK = Element = Flag Next Element If OK Then Flag = stat(LBound(stat))
si on sort du for avec OK vrai alors c'est le dernier élément qui est trouvé et on reprend le 1°.
PS : Au fait par défaut le Lbound est zéro donc je suppose que dans ta déclaration tu as mis Dim stat (1 to ...)
A+
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question