Fermer le formulaire depuis le bouton "Oui" de la MsgBox

Bonjour

Je cherche le code pour fermer le formulaire TousLesDevis lorsque je clique sur le bouton "Oui" de la MsgBox

Private Sub CB_CompleterDevis_Click()
     '**************************
     ' sélectionne ce devis mis en surbrillance et l'ajoute dans la TextBoxDevisEnCours de l'onglet Honda
     '**************************
     ' // si un devis est sélectionné dans la ListBoxTousLesDevis,
     ' // affiche le nom du devis sélectionné dans la TextBoxDevisEnCours (onglet Honda, au dessus du Tableau1 )
     If Me.ListBoxTousLesDevis.ListIndex = -1 Then
          MsgBox "Aucun devis sélectionné !", vbCritical
          '   Sheets("Honda").TextBoxDevisEnCours = ""      ' mis en commentaire papicx 26/08/2025
     Else
          With Me.ListBoxTousLesDevis
               Sheets("honda").TextBoxDevisEnCours = .List(.ListIndex, 3)     'le numero du devis
               Select Case MsgBox("on a écrit " & Sheets("honda").TextBoxDevisEnCours.Text, vbYesNo + vbInformation, "TextBoxDevisEnCours")
                    Case Is = vbYes
                         Sheets("Honda").Activate     ' go to page Honda      papicx 26/08/2025

                         ' // PROJET ferme le formulaire TousLesDevis   papicx 28/08/2025
                   '      Unload.me                            ' ne fonctionne pas.
                     '   Sheets("Devis").TousLesDevis.Close    ' ne fonctionne pas.

                    Case Is = vbNo
                         Sheets("Honda").TextBoxDevisEnCours = ""
               End Select
          End With
     End If
End Sub
2025 08 28 111516

Pour se trouver dans la situation : onglet Devis, cliquer sur le bouton Sélectionner un devis , sélectionner un devis dans la liste, cliquer sur Compléter ce devis.

Merci de votre aide.

Bonjour

EDIT

Bah vous avez déjà l'instruction Unload me dans l'instruction Case = "oui". Il vous suffit de l'activer (sans le point que vous avez mis)

Cordialement

Edit : Par contre un truc intéressant serait d'activer le NON par défaut. Cela vous obligerait à cliquer sur OUI. A voir si intérêt ou pas...

Bonjour,

Une petite question,

Est-ce Me.Unload, qui efface les données saisies dans le usf, ou Me.Hide, qui ne fait que mettre en arrière plan mais sans les effacer et les laisse exploitables, que vous voulez utiliser?

Bonjour Dan

Il vous suffit de l'activer (sans le point que vous avez mis)

Merci bien.
le point en trop... que je suis bête dès fois.


Est-ce Me.Unload, qui efface les données saisies dans le usf, ou Me.Hide, qui ne fait que mettre en arrière plan mais sans les effacer et les laisse exploitables, que vous voulez utiliser ?

Hélas, je n'en ai aucune idée, c'est bien au delà de mes compétences. Désolé.

re

@Swedishchef :

Est-ce Me.Unload, qui efface les données saisies dans le usf, ou Me.Hide, qui ne fait que mettre en arrière plan mais sans les effacer et les laisse exploitables, que vous voulez utiliser?

Unload me décharge l'userform et donc toutes les données que vous avez complétées ou chargées sont perdues
Me.hide
masque l'userform mais conserve les données lorsque vous la faites réapparaitre. Cela peut parfois avoir un intérêt mais pour ma part je préfère toujours décharger que de masquer. Le tout est de voir en utilisation.

Dans le fichier de Papicx, si vous mettez Me.hide dans la procédure CB.completer devis, cela va masquer l'userform.
Ensuite si vous re-cliquez sur le bouton "Selectionner Devis" sur la feuille Honda, cette action ré-ouvrira l'userform sans passer par la sub initialize

@papicx :
En H1 dans votre feuille Honda, vous avez mis une formule. Est-ce que vous savez que vous pouvez la mettre au bas du tableau ?
Si intérêt faites ceci :
- Cliquez dans une cellule du tableau
- allez dans le menu Création Tableau et cochez la case Total dans la rubrique "Option style de tableau"
- cliquez sur H1495 et dans la liste déroulante, choisissez "Nombre"

Cordialement

re,

@Dan, une ligne avec les subtotaux en dessous d'un tableau, à mon avis, cela cause des problèmes quand on ajoute des "listrows". A ce moment, il faut cacher les subtotaux avec ".ShowTotals = False", puis ajouter le listrow et puis montrer de nouveau les subtotaux avec ".ShowTotals = True".

Si on met les subtotaux en dessus le tableau, on n'a pas ce soucis.

@BsAlv :

@Dan, une ligne avec les subtotaux en dessous d'un tableau, à mon avis, cela cause des problèmes quand on ajoute des "listrows". A ce moment, il faut cacher les subtotaux avec ".ShowTotals = False", puis ajouter le listrow et puis montrer de nouveau les subtotaux avec ".ShowTotals = True".

Hum... Oui je savais cela. Mais c'est assez bizarre car j'ai déjà eu des cas où il n'y avait pas besoin de mettre à False

moi aussi, je ne sais pas les conditions pour ces 2 cas ... . Bizarre.

Rechercher des sujets similaires à "fermer formulaire bouton msgbox"