Erreur dans un bloc If... pourquoi ça ne fonctionne pas...

Résolu
stitchbouck Messages postés 116 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 17 avril 2024 - 16 déc. 2017 à 13:03
stitchbouck Messages postés 116 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 17 avril 2024 - 16 déc. 2017 à 13:47
Bonjour,

voilà, j'ai des yeux carrés, je ne vois plus bien ce que j'ai fais de faux. Je suis un débutant en VBA, et pas gd monde autour de moi pour m'aider. Donc hop, un petit saut chez vous :)

If Sheets("Ordre de relevé").Cells(numero - 1, 41).Value - Sheets("Ordre de relevé").Cells(numero, 41).Value < 0 _
Then Sheets("Conso antioxydant").Cells(54, 2).Value = Sheets("Ordre de relevé").Cells(numero - 1, 41).Value + (950 - Sheets("Ordre de relevé").Cells(numero, 41).Value) _
End If


En français :
si mon relevé de la veille, moins celui du jour est négatif, alors la valeur de la cellule qui doit accueillir le résultat = relevé de la veille +(950 (capacité max) - relevé du jour).

Voilà l'idée du calcul. et VBA me met un message pour ce code en pointant le END IF "attendu fin d'instruction". et là bein... j'ai lu, relu, allez sur le net pour comparer mon bloc If, tenté avec des Else, des Else if etc... je coince, je ne comprends pas ce qui ne lui va pas.

Peut-on m'aider ?
je continue de chercher ds mon coin en attendant, je re si je trouve ce qui ne va pas.

HA et "numero" est déclaré en tout début de code (mais il est long). je suis preneur pour un raccourcit de syntaxe, si vous en connaissez un ;)

merci d'avance !!

1 réponse

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
16 déc. 2017 à 13:10
Soit tu fais une seule ligne :
If Sheets("Ordre de relevé").Cells(numero - 1, 41).Value - Sheets("Ordre de relevé").Cells(numero, 41).Value < 0  Then Sheets("Conso antioxydant").Cells(54, 2).Value = Sheets("Ordre de relevé").Cells(numero - 1, 41).Value + (950 - Sheets("Ordre de relevé").Cells(numero, 41).Value)

Sans le End if soit tu le fait en plusieurs lignes :
If Sheets("Ordre de relevé").Cells(numero - 1, 41).Value - Sheets("Ordre de relevé").Cells(numero, 41).Value < 0 Then
    Sheets("Conso antioxydant").Cells(54, 2).Value = Sheets("Ordre de relevé").Cells(numero - 1, 41).Value + (950 - Sheets("Ordre de relevé").Cells(numero, 41).Value)
End If


Mais pas un hybride des 2.
0
stitchbouck Messages postés 116 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 17 avril 2024
16 déc. 2017 à 13:47
haaa je n'avais pas compris que le End If n'était pas obligatoire !!! d'où le blocage. Bon, super merci encore !! :)
0
Rejoignez-nous