Problème for sans next

Bonjour,

Je débute en VBA et j'ai écrit un code avec la fonction else if et il me met une erreur "for sans next".

En fait, je veux faire une programmation où les résultats doivent arriver sur la colonne F, de F3 à F....

En gros, si deux conditions sont remplies cela doit donner un chiffre spécifique dans la colonne F, etc etc car il y a beaucoup de possibilités différentes. Et ce sur chaque ligne.

Voici le code que j'ai fait:

For Each c In [F3:FX]

' Pour ceux relevant de l'échelle 3, arrivée au grade C1

If c.Value Like "*3*" Then

c.Offset(0, 7).Value = c.Offset(0, 1).Value

' Pour ceux relevant de l'échelle 4, arrivée au grade C2

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*1*" Then

c.Offset(0, 7).Value = "[1]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*2*" Then

c.Offset(0, 7).Value = "[1]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*3*" Then

c.Offset(0, 7).Value = "[2]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*4*" Then

c.Offset(0, 7).Value = "[2]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*5*" Then

c.Offset(0, 7).Value = "[3]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*6*" Then

c.Offset(0, 7).Value = "[4]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*7*" Then

c.Offset(0, 7).Value = "[5]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*8*" Then

c.Offset(0, 7).Value = "[6]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*9*" Then

c.Offset(0, 7).Value = "[7]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*10*" Then

c.Offset(0, 7).Value = "[8]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*11*" Then

c.Offset(0, 7).Value = "[8]"

ElseIf c.Value Like "*4*" And c.Offset(0, 1).Value Like "*12*" Then

c.Offset(0, 7).Value = "[9]"

' Pour ceux relevant de l'échelle 5, arrivée au grade C2

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*1*" Then

c.Offset(0, 7).Value = "[2]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*2*" Then

c.Offset(0, 7).Value = "[3]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*3*" Then

c.Offset(0, 7).Value = "[3]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*4*" Then

c.Offset(0, 7).Value = "[4]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*5*" Then

c.Offset(0, 7).Value = "[4]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*6*" Then

c.Offset(0, 7).Value = "[5]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*7*" Then

c.Offset(0, 7).Value = "[6]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*8*" Then

c.Offset(0, 7).Value = "[7]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*9*" Then

c.Offset(0, 7).Value = "[8]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*10*" Then

c.Offset(0, 7).Value = "[9]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*11*" Then

c.Offset(0, 7).Value = "[10]"

ElseIf c.Value Like "*5*" And c.Offset(0, 1).Value Like "*12*" Then

c.Offset(0, 7).Value = "[11]"

' Pour ceux relevant de l'échelle 6, arrivée au grade C3

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*1*" Then

c.Offset(0, 7).Value = "[2]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*2*" Then

c.Offset(0, 7).Value = "[3]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*3*" Then

c.Offset(0, 7).Value = "[3]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*4*" Then

c.Offset(0, 7).Value = "[4]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*5*" And e.Value < 18 Then

c.Offset(0, 7).Value = "[5]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*5*" And e.Value >= 18 Then

c.Offset(0, 7).Value = "[6]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*6*" Then

c.Offset(0, 7).Value = "[7]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*7*" Then

c.Offset(0, 7).Value = "[8]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*8*" Then

c.Offset(0, 7).Value = "[9]"

ElseIf c.Value Like "*6*" And c.Offset(0, 1).Value Like "*9*" Then

c.Offset(0, 7).Value = "[10]"

Else: c.Offset(0, 7).Value = "[RIEN]"

End If

Next

Si vous avez des pistes à me donner, ce serait très sympa.

Je vous remercie par avance.

Bonjour,

Il n'y a pas de problème de Next dans cette partie de ton code, par contre e n'est pas défini (dans e.Value < 18)

Oui effectivement, du coup, j'ai ajouté en haut

For Each e In [H3:HX] et j'ai ajouté un next en bas.

Maintenant il me met un message d'erreur: Erreur d'exécution'13'

Du coup je ne comprends toujours pas où est mon erreur.

Si tu as un coup de pouce à me donner ça serait super.

Je te remercie,

Cdlt,

J'espère que tu n'écrit pas [H3:HX] mais [H3:H50] ou [H3:H1000] !!!

Rechercher des sujets similaires à "probleme next"