encore problème de if

M

Manu

Guest
Salut à tous,

voici mon code qui me pose problème car il me donne comme message d'erreur :else sans if

Je n'y comprends rien car j'ai bien mis mon if:

Si vous trouvez l'erreur, ça serait super:


Private Sub Worksheet_Activate()


Sheets("Feuil1").Select
If Range("B55").Value < 50 Then Range("B65").Value = 1

ElseIf (Range("B55").Value > 50 And Range("B55").Value < 100) Then Range("B65").Value = 2
ElseIf (Range("B55").Value > 100 And Range("B55").Value < 150) Then Range("B65").Value = 3
End If
End Sub
 
L

lichem01

Guest
J'ai pas trouvé réponse a ton probleme, j'ai le même message.
Je t'envoie une fonction qui devrais faire la même chose :
=SI(B55<50;"Alerte Inferieure";SI(B55<100;"Alerte Superieure";SI(B55<150;"Alerte +++++";("TROP"))))
Tu copie la formule dans B65,tu l'arranges au niveau du resultats que tu veux afficher(texte entre " ") et dis moi si ça correspond à ce que tu cherche
 
P

Pat5

Guest
Essaye ça mais je ne sais pas si c'est ce que tu veux ;o)

Sub Worksheet_Activate()


Sheets("Feuil1").Select
If Range("B55").Value < 50 Then
Range("B65").Value = 1
End If
If (Range("B55").Value > 50 And Range("B55").Value < 100) Then
Range("B65").Value = 2
End If
If (Range("B55").Value > 100 And Range("B55").Value < 150) Then
Range("B65").Value = 3

End If
End Sub
 
F

Fred

Guest
Slt, oui comme ça, ca marche mais vire les end if qui ne sont pas necessaires:

Sub test()
Sheets("Feuil1").Select
If Range("B55").Value < 50 Then Range("B65").Value = 1
If Range("B55").Value > 50 And Range("B55").Value < 100 Then Range("B65").Value = 2
If Range("B55").Value > 100 And Range("B55").Value < 150 Then Range("B65").Value = 3
End Sub
 
F

fragl

Guest
Salut Manu

le problème vient uniquement du retour à la ligne après "Then".
Comme tu as des "ElseIf", il faut commencer comme ceci:

If Range("B55").Value < 50 Then
Range("B65").Value = 1
Elseif... etc.

et là, ça fonctionne.

Lorsque tu mets la condition et l'action sur la même ligne,
VB n'a pas besoin de endif, c'est pourquoi il le refusait.
Mais pour placer plusieurs actions et des "ElseIf", il faut travailler sur plusieurs lignes juste après "Then".

Restons Then... hum !
 
M

Manu

Guest
Tu as raison Fraq1, c'est vrai que lorsque l'on fait passer l'action à la ligne il n' y a plus aucun problème.
Maintenant je connais tous les secrets de la l'instruction if then else.

Merci encore à tous!
 

Statistiques des forums

Discussions
312 152
Messages
2 085 798
Membres
102 980
dernier inscrit
brossadan