Syntaxe de l'instruction If...Else [Résolu/Fermé]

- - Dernière réponse :  Utilisateur anonyme - 9 juin 2013 à 17:09
Bonjour,

J'aimerais savoir ce qu'il y a de faux dans ce script VBA :

Private Sub CommandButton1_Click()
If (Weekday(Date) = 1) Then MsgBox "Aujourd'hui c'est dimanche"
Else: MsgBox "Aujourd'hui ce n'est pas dimanche"
End If
End Sub

En effet, ce script produit un message d'erreur "Else sans If". Pourtant, j'ai bien une instruction "If... Then..."

(J'utilise Excel 2007)

Afficher la suite 

1 réponse

0
Merci
Bonjour

Il y a deux syntaxes du if en VB

If condition then instruction [: instruction...] else instruction [: instruciton...]

ou
If condition then
  Instruction
  ...
else
  instruction
  ...
End If


Si tu as commencé avec la 1ère syntaxe (instruction sur la même ligne que le then) tu dois continuer, c'est à dire avec le else sur la même ligne et sans endif
Merci. Je pense que c'est en effet le retour ligne qui posait problème. Ca a l'air de marcher :

Private Sub CommandButton1_Click()
If (Weekday(Date) = 1) Then
MsgBox "Aujourd'hui c'est dimanche"
Else: MsgBox "Aujourd'hui ce n'est pas dimanche"
End If
End Sub

Les deux points après le Else se sont ajoutés automatiquement. Enfin, bon, ça marche.
Utilisateur anonyme -
Les deux points servent à séparer deux instructions sur une même ligne. Tu aurais dû mettre ton msgbox sur la ligne suivante. Il a compris tout seul et a ajouté le : pour séparer le else du msgbox, alors qu'il n'y en a pas avec la 1ère syntaxe.
Tu sais que tu peux mettre sur une seule ligne
x=1 : y=2 : z=3