Besoin d'aide Syntaxe If multiple

Résolu
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   -  
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un petit problème de syntaxe pour deux syntaxes avec if multiples.

1. La première consiste à définir une variable en fonction d'optionbutton.
J'ai 3 optionbuttons sur mon USF que j'ai nommé "Saisie", "Infos" et "Autre"
J'aimerais définir une variable en fonction du choix qui est fait par l'utilisateur, mais je bloque :
Dim Motif As String
Motif = ""
If Saisie.Value = True Then Motif = Saisie.Caption
ElseIf Infos.Value = True Then Motif = Infos.Caption
ElseIf Autre.Value = True Then Motif = Précisez.Value
End If
Ce code ne fonctionne pas, j'ai une erreur "Complie Error Else Without If" ..... ?

2. Le second concerne toujours le même USF, sauf que cette fois j'aimerais vérifier que tous les champs sont remplis à savoir : nom, prénom et motif.
J'ai gardé la même syntaxe, à savoir celle qui marche pas...
If Nom = "" Then MsgBox ("Veuillez entrer vos votre nom s'il vous plaît. Merci")
ElseIf Prénom = "" Then MsgBox ("Veuillez entrer vos votre prénom s'il vous plaît. Merci")
ElseIf Motif = "" Then MsgBox ("Veuillez choisir un motif s'il vous plaît. Merci")
Else
'reste de la macro
J'ai fais plusieurs essais mais j'ai toujours la/les même erreurs "Else Without If" ou "End If without block if" alors que j'ai des If partout...

Merci d'avance à celui ou celle qui pourra m'aider.

3 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    Pour le premier, il y a juste une erreur de syntaxe :

    Dim Motif As String
    Motif = ""
    If Saisie.Value = True Then
    Motif = Saisie.Caption
    Else
    If Infos.Value = True Then
    Motif = Infos.Caption
    Else
    If Autre.Value = True
    Then Motif = Précisez.Value
    End If
    end if
    end if

    Pour le deuxième :

    If Nom = "" Then
    MsgBox ("Veuillez entrer vos votre nom s'il vous plaît. Merci")
    Else
    If Prénom = "" Then
    MsgBox ("Veuillez entrer vos votre prénom s'il vous plaît. Merci")
    Else
    If Motif = "" Then
    MsgBox ("Veuillez choisir un motif s'il vous plaît. Merci")
    Else
    'reste de la macro
    end if
    end if
    end if
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Pour que ta combinaison fonctionne il faut que le End If termine une série de conditions ce qui n'est pas le cas dans ton exxemple.
    Dim Motif As String
    'Motif = "" pas nécessaire... déjà vide
    If Saisie.Value = True Then
    Motif = Saisie.Caption
    ElseIf Infos.Value = True Then Motif = Infos.Caption
    ElseIf Autre.Value = True Then Motif = Précisez.Value
    End If
    Comme ça.. ça va aller.
    A+

    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
    0
  3. Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
     
    Merci à vous deux.
    Si je comprends bien il faut faire un retour à la ligne après le "Then" pour que le If soit pris en compte ?

    Quoi qu'il en soit, merci beaucoup pour votre aide.

    Bonne journée
    0