Probleme dans boucle

Bonjour à tous,
J'ai crée une boucle avec l'instruction for each...
avec à l'intérieur 2 conditions (if) :
une permettant de sortir de la boucle
une autre permettant de reprendre la boucle.

voila une partie de mon code
For Each poids In Range("efH")
If poids.Offset(0, -2) = "" Then Exit For
If poids = "" Then Next
...
Next

simplement j'ai un bug au niveau de la deuxieme condition --> Next sans for.
Bien sur mais je suis débutant.
Merci d'avance pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Mille merci
    Des fois on a la solution au bout du nez... et on la voit pas
    Je vais m'améliorer...
    Je pensais qu'il y aurait eu un bug qand poids="" .
    1. il te faut entrer dans le If et en sortir avant l instruction next.
      le plus logique serait de positiver. je mettrais si pas blanc ...

      je ferais un truc style
      for each ....
      if poids.offset ... <> "" then
      tu fais ton traitement
      else
      exit for .... tu fais ce que tu veux
      end if
      next
      1. Re bonjour,
        et tout d'abord merci de votre réactivité.
        Tu as bien compris ego.
        Simplement je voudrais que si mon poids="" qu'il étudie le poids suivant (en fait qu'il reprenne la boucle For each dès le début)
        Je pense que ca provient d'une erreur d'instruction.
        Mais je suis pas un expert
        1. pour ce que je comprends, tu sors de ton For en ligne 2, donc ton prog reprend apres en ligne 3 et trouve un next qui n est relié a rien

          For Each poids In Range("efH")
          If poids.Offset(0, -2) = "" Then Exit For
          If poids = "" Then Next
          1. Bonjour

            Arrange toi pour avoir un seul NEXT par FOR. De plus, ne mets jamais de next sans son for dans un if then ou else
            Enfin, rappelle toujours la variable du for dans le next, ça ne coûte pas cher et ça t'évitera des erreurs

            For Each poids In Range("efH") 
              If poids.Offset(0, -2) = "" Then Exit For 
              If poids <> "" Then
                ... 
              End if
            Next poids