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] !!!