Syntaxe de l'instruction If...Else

Résolu
Markos -  
 Utilisateur anonyme -
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)

1 réponse

  1. Utilisateur anonyme
     
    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
    0
    1. Markos
       
      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.
      0
    2. 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
      0