Erreur de Compilation : Else sans If

Résolu/Fermé
data_traveler Messages postés 7 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 28 septembre 2013 - 28 sept. 2013 à 16:18
data_traveler Messages postés 7 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 28 septembre 2013 - 28 sept. 2013 à 18:00
Bonjour à tous,

Je suis actuellement en train de travailler sur un petit code VBA via excel. Pas forcément très simplement, je suis arrivé à faire tout ce que je voulais.
Il reste seulement un petit détail qui ne fonctionne pas.

Il s'agit de vérifier que le contenu d'une cellule n'est pas vide (si c'est le cas, afficher une msgbox disant "Il n'y a rien à vendre").
Si elle n'est pas vide, afficher une autre msgbox demandant confirmation de vente.
Si la réponse est oui, poursuivre, si c'est non afficher une msgbox disant que la vente a été annulée.

Toute la 2e partie marche à merveille, mais depuis que j'ai intégré le "Il n'y a rien à vendre", ça foire. Et excel me donne une erreur de compilation else sans if... Alors que le If je le vois bien :P.

Voilà, je vous met le code en annexe, en espérant que vous puissiez faire quelque chose pour moi. (C'edst donc à partir du Elseif que ça déconne).

Merci d'avance pour vos réponses qui j'espère m'aideront.

Cordialement,
data_traveler

Sub maMsgbox()

'Définit les variables nom et prix

Dim variable As String, variable2 As Single
variable = ActiveCell.Offset(0, -5).Range("A1").Value
variable2 = ActiveCell.Offset(0, -5).Range("E1").Value

'Si le nom est vide, cette msgbox apparaîtra

If variable = "" Then Msgbox "Il n'y a rien à vendre !", vbExclamation

ElseIf Msgbox("Avez-vous bien vendu l'objet " & variable & " pour " & variable2 & " € ?", vbYesNo + vbQuestion, "Demande de Confirmation") = vbYes Then

' Si on répond oui à la question, on appelle la macro transfert et on affiche la msgbox suivante

Call Transfert

Msgbox "La vente a bien été effectuée !", vbInformation

Else
Msgbox "La vente a été annulée, vous pouvez modifier le prix de l'objet !", vbInformation

'Si on répond non, la vente est annulée et la cellule prix est sélectionnée pour le modifier

ActiveCell.Offset(0, -5).Range("E1").Select
End If

End Sub

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
28 sept. 2013 à 17:25
Bonjour,

Sub maMsgbox()
'Définit les variables nom et prix
Dim variable As String, variable2 As Single

variable = ActiveCell.Offset(0, -5).Range("A1").Value
variable2 = ActiveCell.Offset(0, -5).Range("E1").Value

'Si le nom est vide, cette msgbox apparaîtra
If variable = "" Then
MsgBox "Il n'y a rien à vendre !", vbExclamation
Else
If MsgBox("Avez-vous bien vendu l'objet " & variable & " pour " & variable2 & " € ?", vbYesNo + vbQuestion, "Demande de Confirmation") = vbYes Then
' Si on répond oui à la question, on appelle la macro transfert et on affiche la msgbox suivante
Call Transfert
MsgBox "La vente a bien été effectuée !", vbInformation
Else
'Si on répond non, la vente est annulée et la cellule prix est sélectionnée pour le modifier
MsgBox "La vente a été annulée, vous pouvez modifier le prix de l'objet !", vbInformation
ActiveCell.Offset(0, -5).Range("E1").Select
End If
End If
End Sub

Bonne suite
-1
data_traveler Messages postés 7 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 28 septembre 2013 8
28 sept. 2013 à 18:00
Super, Merci beaucoup, je saurai que la "présentation" peut influer de cette façon !
0