encore problème de if

  • Initiateur de la discussion Initiateur de la discussion Manu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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 !
 
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!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
578
Réponses
5
Affichages
700
Réponses
5
Affichages
477
Réponses
8
Affichages
269
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
2
Affichages
329
Retour