Problème code

Bonjour,

voilà j'ai ce code :

For i = 13 To 14

For j = 10 To 11

If Cells(5, i) = 3 Then

    Cells(7, j) = 1

End If

Next j

Next i

Je ne comprend pas pourquoi par exemple si l'une des 2 cellules est égale à 3 les 2 autres se mettent à 2 alors qu'il ne devrait y avoir qu'une seule cellule de mise à 2.

Cdlt.

Bonsoir Mattsly,

D'après ton code, si les cellules des colonnes M et N et de la ligne 5 sont = 3 alors

les cellules de la ligne des colonnes J et K et de la ligne 7 sont remplie avec un 1.

Dans ton message du dis quelles sont chargée par un 2, sans doute voulais-tu dire 1...

Si tu décomposes le code ligne par ligne, voilà ce cela fait :

si M5=3 alors J7=1

si M5=3 alors K7=1

si N5=3 alors J7=1

si N5=3 alors K7=1

Donc le test de la seconde boucle faite par i, qui correspond à la colonne N, s'il est vrai, met les cellules J7 et K7 à 1.

re,

Oui je voulais dire 1,

le soucis c'est que si j'ai que la cellule M5 = 3 il me mets quand même la cellule K7 à 1 alors qu'il ne devrait pas.

Cdlt.

Je ne sais pas, mais d'après ton code, c'est obligé que tu mettes un 1 dans les deux cellules, car tu as imbriqué un seconde boucle dans la première.

Essaie de modifier ton code en ne mettant qu'une seule boucle, et pour t'aider je te donne ce tuyau : ta boucle doit être de 1 à 2. Tu devrais t'en sortir maintenant, mais si tu n'y arrives pas revient dans ce post.

Re,

J'ai essayé mais je ne trouve pas...

Cdlt.

Voilà, je t'ai mis deux solutions parmi d'autres :

For i = 0 To 1
   ' Décalage de colonne M + (0 ou 1)
   If Cells(5, "M").Offset(0, i) = 3 Then
      ' Décalage de colonne J + (0 ou 1)
      Cells(7, "J").Offset(0, i) = 1
   End If
Next i
For i = 1 To 2
   ' Décalage de colonne L + (1 ou 2)
   If Cells(5, 12 + i) = 3 Then
      ' Décalage de colonne I + (1 ou 2)
      Cells(7, 9 + i) = 1
   End If
Next i

Re,

Merci ça fonctionne nickel.

Cdlt.

Parfait... Pense à passer le fil en résolu...

Rechercher des sujets similaires à "probleme code"