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

Messages postés
36
Date d'inscription
mercredi 12 janvier 2011
Dernière intervention
22 mai 2018
- - Dernière réponse : stitchbouck
Messages postés
36
Date d'inscription
mercredi 12 janvier 2011
Dernière intervention
22 mai 2018
- 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 !!
Afficher la suite 

Votre réponse

1 réponse

Messages postés
14323
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 décembre 2018
0
Merci
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.
stitchbouck
Messages postés
36
Date d'inscription
mercredi 12 janvier 2011
Dernière intervention
22 mai 2018
-
haaa je n'avais pas compris que le End If n'était pas obligatoire !!! d'où le blocage. Bon, super merci encore !! :)
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.