Gérer plus de 3 messagebox dans une macro

18home.xlsm (28.61 Ko)

bonjour,

J'aimerais réaliser une macro qui pose des questions aux utilisateurs avec réponse "oui" ou "non" et en fonction des réponses agis plus ou moins de facon differentes. Mais avec le code que j'ai utilisé une fois que le premier messagebox est positif, tout les autres le sont malgré le fait de repondre négativement.

En vous remerciant d'avance.

Voici un Extrait de mon code:

Dim Rep As Integer

Dim PriceD As Integer

Dim EtatV As Integer

Rep = MsgBox("TRANSIT A EFFECTUER?", vbYesNo + vbQuestion, "TRANSIT")

If Rep = vbYes Then

Range("C18").Select

ActiveCell.FormulaR1C1 = "OUI"

Range("E18").Select

ActiveCell.FormulaR1C1 = InputBox("ENTREZ LA VILLE EN TRANSIT", "VILLE TRANSIT")

Range("I18").Select

ActiveCell.FormulaR1C1 = InputBox("ENTREZ LE PAYS TRANSIT", "PAYS TRANSIT")

Else

Range("C18").Select

ActiveCell.FormulaR1C1 = "NON"

End If

PriceD = MsgBox("FRAIS DHL?", vbYesNo + vbQuestion, "DHL")

If Rep = vbYes Then

Range("U8").Select

ActiveCell.FormulaR1C1 = InputBox("ENTREZ LE MONTANT DES FRAIS DHL", "FRAIS DHL")

Else

Range("V8").Select

End If

EtatV = MsgBox("VEHICULE PRET POUR ENLEVEMENT?", vbYesNo + vbQuestion, "ETAT VEHICULE")

If Rep = vbYes Then

Range("V8").Select

ActiveCell.FormulaR1C1 = "PRET"

Else

Range("V8").Select

ActiveCell.FormulaR1C1 = "PAS PRET"

End If

Bonjour,

Un début de réponse structurée pour la lecture.

Cdlt.

Option Explicit

Public Sub DEMO()
Dim Prompt As String, Title As String
Dim Default As VbMsgBoxStyle
Dim Response As VbMsgBoxResult

    '----------------------------------------------------
    Prompt = "TRANSIT A EFFECTUER"
    Title = "TRANSIT"
    Default = vbYesNo + vbQuestion

    Response = MsgBox(Prompt, Default, Title)

    Select Case Response

        Case vbYes

            Range("C18") = "OUI"

            Prompt = "ENTREZ LA VILLE EN TRANSIT"
            Title = "VILLE TRANSIT"
            Range("E18") = InputBox(Prompt, Title)

            Prompt = "ENTREZ LE PAYS DE TRANSIT"
            Title = "PAYS TRANSIT"
            Range("I18") = InputBox(Prompt, Title)

        Case Else

            Range("C18") = "NON"
            Exit Sub

    End Select

    '----------------------------------------------------

    Prompt = "FRAIS DHL?"
    Title = "DHL"
    Default = vbYesNo + vbQuestion

    Response = MsgBox(Prompt, Default, Title)

    Select Case Response

    Case vbYes

            Range("V8") = "PRET"

            Prompt = "ENTREZ LE MONTANT DES FRAIS DHL"
            Title = "FRAIS DHL"
            Range("U8") = InputBox(Prompt, Title)

        Case Else

            Range("V8") = "PAS PRET"

    End Select

    '----------------------------------------------------

    Prompt = "VEHICULE PRET POUR ENLEVEMENT?"
    Title = "ETAT VEHICULE"
    Default = vbYesNo + vbQuestion

    Response = MsgBox(Prompt, Default, Title)

    ' à déterminer...

    '----------------------------------------------------

End Sub

Bonjour tout le monde,

à tester.

Sub trois_message()

'+---------------------------------+
'|         1ere message box        |
'+---------------------------------+
If MsgBox("TRANSIT A EFFECTUER?", vbYesNo + vbQuestion, "TRANSIT") = vbYes Then
    Range("C18") = "OUI"
    Range("E18") = InputBox("ENTREZ LA VILLE EN TRANSIT", "VILLE TRANSIT")
    Range("I18") = InputBox("ENTREZ LE PAYS TRANSIT", "PAYS TRANSIT")
Else
    Range("C18") = "NON"
End If

'+---------------------------------+
'|         2eme message box        |
'+---------------------------------+
If MsgBox("FRAIS DHL?", vbYesNo + vbQuestion, "DHL") = vbYes Then
    Range("U8") = InputBox("ENTREZ LE MONTANT DES FRAIS DHL", "FRAIS DHL")
Else
    Range("V8").Select
End If

'+---------------------------------+
'|         3eme message box        |
'+---------------------------------+
If MsgBox("VEHICULE PRET POUR ENLEVEMENT?", vbYesNo + vbQuestion, "ETAT VEHICULE") = vbYes Then
    Range("V8") = "PRET"
Else
    Range("C18") = "PAS PRET"
End If

End Sub

Cordialement.

Je vous remercie vraiment pour votre aide Big daddy ta reponse etait la solution a mon probleme.

merci beaucoup.

Une dernière petite question s'il vous plait:

J'aimerais faire un dernier msgbox dans lequel je pose la question "voulez vous ajoutez un nouveau vehicule?" si oui alors ont repete exactement exactement les trois message de big daddy Si non fin de la boucle.

Je vous remercie d'avance...

Rajoute ceci :

Sub trois_message()
debut:
'+---------------------------------+
'|         1ere message box        |
'+---------------------------------+
If MsgBox("TRANSIT A EFFECTUER?", vbYesNo + vbQuestion, "TRANSIT") = vbYes Then
    Range("C18") = "OUI"
    Range("E18") = InputBox("ENTREZ LA VILLE EN TRANSIT", "VILLE TRANSIT")
    Range("I18") = InputBox("ENTREZ LE PAYS TRANSIT", "PAYS TRANSIT")
Else
    Range("C18") = "NON"
End If

'+---------------------------------+
'|         2eme message box        |
'+---------------------------------+
If MsgBox("FRAIS DHL?", vbYesNo + vbQuestion, "DHL") = vbYes Then
    Range("U8") = InputBox("ENTREZ LE MONTANT DES FRAIS DHL", "FRAIS DHL")
Else
    Range("V8").Select
End If

'+---------------------------------+
'|         3eme message box        |
'+---------------------------------+
If MsgBox("VEHICULE PRET POUR ENLEVEMENT?", vbYesNo + vbQuestion, "ETAT VEHICULE") = vbYes Then
    Range("V8") = "PRET"
Else
    Range("C18") = "PAS PRET"
End If

'+---------------------------------+
'|         4eme message box        |
'+---------------------------------+
If MsgBox("VOULEZ VOUS AJOUTER UN NOUVEAU VEHICULE?", vbYesNo + vbQuestion, "NOUVEAU VEHICULE") = vbYes Then
    GoTo debut
End If
End Sub

Cordialement.

Merci Milles fois.

Rechercher des sujets similaires à "gerer messagebox macro"