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

stitchbouck 30 Messages postés mercredi 12 janvier 2011Date d'inscription 31 janvier 2018 Dernière intervention - 16 déc. 2017 à 13:03 - Dernière réponse : stitchbouck 30 Messages postés mercredi 12 janvier 2011Date d'inscription 31 janvier 2018 Dernière intervention
- 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 

2 réponses

Répondre au sujet
NHenry 14133 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 22 avril 2018 Dernière intervention - 16 déc. 2017 à 13:10
0
Utile
1
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 30 Messages postés mercredi 12 janvier 2011Date d'inscription 31 janvier 2018 Dernière intervention - 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 !! :)
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.