Erreur dans un bloc If... pourquoi ça ne fonctionne pas... [Résolu]

Signaler
Messages postés
92
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
11 mai 2021
-
Messages postés
92
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
11 mai 2021
-
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

Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
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.
Messages postés
92
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
11 mai 2021

haaa je n'avais pas compris que le End If n'était pas obligatoire !!! d'où le blocage. Bon, super merci encore !! :)