Remplacer des msgbox par des userform

Bonjour,

Je viens une nouvelle fois demander de l'aide,...

J'ai crée un fichier avec pas mal de code et qui fonctionne très bien.Le seul problème que je rencontre c'est l'emplacement de mes msgbox... Dans ce classeur j'ai un formulaire qui est amené à être affiché sur un deuxième écran. Et évidemment, les msgbox, elles, s'affichent sur l'écran où se trouve ma feuille de calcul ....

Après quelques recherche j'ai cru comprendre qu'il était difficile de remédier a cela et qu'il était plus simple de créer des userform a la place de ces msgbox.

Le problème c'est que je ne sais pas comment m'y prendre. J'ai créé un userform avec 2 boutons (Yes et No par exemple) mais comment le lancer a partir du premier et puis poursuivre mon code en fonction de la réponse?

Je voudrai remplacer ça par exemple :

If MsgBox("Ajouter les données?", vbYesNo, "Confirmation") = vbYes Then

par ma "msgbox perso"....

Merci

3 réponses

  1. Bonjour,

    Sub msg()
        Reponse = MsgBox("Ajouter les données?", vbYesNo, "Confirmation")
        If Reponse = vbYes Then
            MsgBox "Oui"
            Userform1.Show      'adaptez le nom de l'UF
        Else
            MsgBox "Non"
        End If
    End Sub
    1. Merci de tenter de m'aider,

      Mais avec ton code j'ai toujours des msgbox que je ne peut pas repositionner.....
      En fait je voudrai créer un userform qui ressemble a une message box (juste deux boutons donc).
      Mais comment afficher cet userform ("fausse msgbox") et renvoyer la réponse dans mon premier userform et poursuivre mon code en fonction de cette reponse?

      Merci
      1. Re,
        Désolé, pas compris ce que vous vouliez.
        Comment vous comptez lancer cette pseudo msgbox?
        Pour récupérer le choix, passez par une variable declaree en public
      2. Re,
        En fait la plupart de mes msgbox me servent a informer l'utilisateur qu'il rentre des informations incorrectes. par exemple :

        'Verifier si vide
        If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then
        MsgBox ("Il manque des informations!")
        GoTo 1
        End If

        'Verifier si le N° de personnel existe
        If WorksheetFunction.CountIf(Sheets("liste du personnel").Range("b:b"), Me.TextBox1.Value) = 0 Then
        MsgBox "Le numéro de personnel n'existe pas!", vbInformation + vbOKOnly, "Numéro de personnel invalide"
        TextBox1 = ""
        GoTo 1
        End If

        etc...

        Et donc toutes ces msgbox ne sont pas repositionnables.. Il me faudrai un truc comme ca je pense :

        'Verifier si vide
        If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then
        "faussemsgbox".show
        'quand l'utilisateur clique sur ok par exemple
        GoTo 1
        End If

        Merci de votre aide
    2. Voilà j'ai crée un petit fichier exemple avec très peu de code histoire de simplifier tout ca.

      https://www.cjoint.com/c/HCkusOGFvm5

      Merci encore de tenter de m'aider
      1. Bonjour,
        Je regarde la chose
        A+
      2. Re,

        Fichier modifie, a vous de tester si vous convient: https://mon-partage.fr/f/ols75eqK/
        Ai ajoute des tests et une seule UF pour les messages