Remplacer un MsgBox par un UserForm ?

Bonjour à toutes et tous,

je souhaites remplacer les MsgBox par des UF, plus clair pour la lecture

voici mon code pour les MsgBox

If MsgBox("Confirmez-vous L’insertion de ce nouvel élément ?", vbYesNo, "Demande de confirmation d’ajout ") <> vbYes Then Exit Sub
    End If

Pour un simple avertissement, pas de problèmes mais ce qui me chiffonne dans ce code ce sont les fonctions vb

Merci de bien vouloir m'aider encore une fois

Amicalement

Pierrot

Bonjour,

J'utilise souvent ce type de code pour les MsgBox et les InputBox.

Pour un UserForm, je laisse à d'autres intervenants le soin de te répondre.

Amicalement.

Option Explicit

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

    Prompt = "Confirmez-vous L’insertion de ce nouvel élément ?"
    Default = vbYesNo + vbQuestion
    Title = "Demande de confirmation d’ajout"
    Response = MsgBox(Prompt, Default, Title)

    Select Case Response
        Case vbYes
            MsgBox "Bonjour " & Application.UserName
        Case vbNo
            Exit Sub
    End Select

End Sub

Bonjour Pierre,

Voici un exemple

540test.zip (11.20 Ko)

A+

Bonjour,

vbYes, vbNo, etc. ne sont pas des fonctions mais des constantes...

Dans ton Userform, il te suffit d'ajouter des boutons Oui/Non ou OK/Annuler... pour obtenir le même résultat.

Après tu as quantité de méthodes possibles : par exemple, dans ton module de Userform, tu déclares une variable publique booléenne, mettons choix : l'utilisateur clique sur Oui, tu affectes la valeur True à la variable, Non tu affectes la valeur False. Et tu masques (Hide) le Userform [procédure de chaque bouton].

Tu appelles le Userform au moyen d'une fonction, par exemple :

Function Choix1()
   With Userform1
      .Show
      Choix1 = .choix
   End With
   Unload Userform1
End Function

Et dans ta procédure appelante tu auras :

If Choix1() Then.....

Cordialement.

Bonjour, MFerrand , frangy Jean-Eric

Un grand merci pour la rapidité et la précision de vos réponses, celle de frangy me convient mieux, je garde quand même les autres solutions pour tester

Bonne journée à vous trois;

Amitiés

Pierrot

Bonjour à tous

@Pierrot

tu peux aussi adopter cette forme que je trouve plus souple :

    rep = MsgBox("Confirmez-vous L’insertion de ce nouvel élément ?", 4, "Demande de confirmation d’ajout ")
    If rep = 6 Then Exit Sub

La valeur 1 est celle qui permet de mettre les boutons OUI et NON et si tu réponds OUI, la valeur de rep est 6. Si tu réponds non, rep vaut 7

Cela te permet d’associer par exemple un symbole à ton message. Ex le symbole alerte qui vaut 16 peut être associé aux boutons OUI NON en mettant 20 (4+16)

Ton code devient :

    rep = MsgBox("Confirmez-vous L’insertion de ce nouvel élément ?", 20, "Demande de confirmation d’ajout ")
    If rep = 6 Then Exit Sub

OK ?

Bye !

Bonjour, gmb

cela me parait parfait, mais mon soucis avec un UserForm c'est de pouvoir modifier la police et la présentation du message

ce que je n'arrive pas à faire avec un MsgBox

merci de ta réponse et bon après-midi

Amitiés

Pierrot

Rechercher des sujets similaires à "remplacer msgbox userform"