VBA Sortie de boucle for

Fermé
FL_1998 Messages postés 3 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 14 février 2022 - 11 févr. 2022 à 17:16
FL_1998 Messages postés 3 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 14 février 2022 - 14 févr. 2022 à 08:36
Bonjour,

Je suis débutant sur VBA et j'essaie de créer un programme qui me donne une hauteur et une largeur associé à un débit dans un tableau de sélection.

Voici le programme :

Sub Recherchegrille()


For i = 5 To 25

For x = 3 To 10

If Cells(i, x) > Range("D33").Value Then

Range("E33").Value = Cells(4, x)
Range("F33").Value = Cells(i, 2)
Exit For
Exit For

End If
Next
Next
End Sub

Avec ce programme, j'ai créé deux boucles. Une qui va balayer les lignes du tableau et une autre qui va balayer les colonnes.
Ensuite, j'applique ma condition qui va venir comparer chacune des cellules du tableau avec une cellule rempli manuellement. Quand une cellule est plus grande que ma valeur rempli manuellement, deux cellules vont prendre les largeur et hauteur associés à la valeur du tableau.
Mon soucis survient quand je veux sortir de la boucle. Je n'ai pas de messages d'erreurs mais le exit for ne fonctionne pas pour la première boucle. Elle continue de tourner et ne s'arrête pas lorsque que la conditions est remplis.

Quelqu'un aurait-il une idée ?

Merci de votre aide.

2 réponses

ccm81 Messages postés 10816 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 février 2024 2 403
11 févr. 2022 à 17:27
Bonjour

Essaies ceci
Sub Recherchegrille()
fini = False
For i = 5 To 25
  For x = 3 To 10
    If Cells(i, x) > Range("D33").Value Then
      Range("E33").Value = Cells(4, x)
      Range("F33").Value = Cells(i, 2)
      fini = True
      Exit For
    End If
  Next x
  If fini Then Exit For
Next i
End Sub

Cdlmnt
1
f894009 Messages postés 17180 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 février 2024 1 701
11 févr. 2022 à 17:37
Bonjour,
Ca roule?
Je ne vous avais point vu.
0
FL_1998 Messages postés 3 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 14 février 2022
14 févr. 2022 à 08:36
Merci beaucoup !

Cela fonctionne
0
f894009 Messages postés 17180 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 février 2024 1 701
11 févr. 2022 à 17:24
Bonjour,

Exit Sub dans la deuxieme boucle a la place des Exit For
0
FL_1998 Messages postés 3 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 14 février 2022
11 févr. 2022 à 17:34
Merci beaucoup!

Cela fonctionne.
Pourquoi les deux Exit For ne fonctionne pas ?
0
ccm81 Messages postés 10816 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 février 2024 2 403 > FL_1998 Messages postés 3 Date d'inscription vendredi 11 février 2022 Statut Membre Dernière intervention 14 février 2022
Modifié le 12 févr. 2022 à 09:22
Pourquoi les deux Exit For ne fonctionne pas ?
Voir ci-dessous
Le premier for sort de la boucle x, du coup le deuxième n'est jamais atteint
Donc le deuxième doit être entre les deux Next !
Au passage tu devrais préciser dans tes next, de quelle boucle il s'agit, ça t'aurais peut être permis de détecter l'erreur

> f894009. un brin frisquet ce matin mais ça roule ;-)

Cdlmnt
1