Msgbox à trois possibilité

nikkyb

XLDnaute Junior
Bonjour voici un code :

Code:
Private Sub CommandButton7_Click()
If msgbox("ATTENTION, Voulez vous sauvegarder avant de quitter ?", vbYesNoCancel, "Modification") = vbYes Then
ThisWorkbook.Save
Unload Me
Application.Quit
If vbNo Then
Unload Me
Application.Quit
End If

If vbCancel Then Exit Sub
End If
End Sub

Avec celui ci je peut donc :
1 fermer avec enregistrement (ca marche)
2 annuler (ca marche)
3 fermer sans enregistrer (marche pas)

Et je ne sais pas pourquoi
Y a il une erreur dans mon code merci beaucoup!
 

Pierrot93

XLDnaute Barbatruc
Re : Msgbox à trois possibilité

Bonjour,

essaye peut être ainsi :

Code:
Private Sub CommandButton7_Click()
Dim i As Integer
i = MsgBox("ATTENTION, Voulez vous sauvegarder avant de quitter ?", vbYesNoCancel, "Modification")
If i = vbYes Then
    ThisWorkbook.Save
    Unload Me
    Application.Quit
    ElseIf i = vbNo Then Unload Me:       Application.Quit
    ElseIf i = vbCancel Then Exit Sub
End If
End Sub

bon après midi
@+
 

nikkyb

XLDnaute Junior
Re : Msgbox à trois possibilité

Super seul truc quand je clique sur non donc quitter sans sauvegarder j'ai toujours le message de microsoft : voulez vous sauvegarder avant de quitter, comment faire pour ne pas afficher ce message?

Merci!
 

Pierrot93

XLDnaute Barbatruc
Re : Msgbox à trois possibilité

Re,

modifie ainsi :

Code:
Private Sub CommandButton1_Click()
Dim i As Integer
i = MsgBox("ATTENTION, Voulez vous sauvegarder avant de quitter ?", vbYesNoCancel, "Modification")
If i = vbYes Then
    ThisWorkbook.Save
    Unload Me
    Application.Quit
    ElseIf i = vbNo Then Unload Me: Application.DisplayAlerts = False: _
        Application.Quit: Application.DisplayAlerts = True
    ElseIf i = vbCancel Then Exit Sub
End If
End Sub

@+
 

nikkyb

XLDnaute Junior
Re : Msgbox à trois possibilité

Car avec le message de microsoft je revient sur les feuil excel si j'annule alors quand passant par l'userform, en aucun cas je revient vers les feuil excel tout simplement.
J'essai donc de faire en sorte qu'on ne puisse plus acceder au feuils....
 

Pierrot93

XLDnaute Barbatruc
Re : Msgbox à trois possibilité

Re,

plutôt que d'enlever la croix, perso je préfère la désactiver, code ci-dessous à utiliser dans le module de l'usf :

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = 1
End Sub

@+
 

Ubot303

XLDnaute Occasionnel
Re : Msgbox à trois possibilité

Mes remarques en vrac :

1) ElseIf i = vbCancel Then Exit Sub : ne ferme pas Excel

2) Pourquoi ne pas mettre un Activeworksheet.close (0)? Au lieu de vouloir désactiver les messages d'alerte?

3) Pourquoi ne pas profiter de la macro Evenementielle "Workbook_BeforeClose(Cancel As Boolean)" en vérifiant que si Cancel alors on ferme tout sans enregistrer avec un .close(0) ?
 

Discussions similaires

  • Question
Microsoft 365 MsgBox
Réponses
9
Affichages
452

Statistiques des forums

Discussions
312 595
Messages
2 090 094
Membres
104 374
dernier inscrit
cheick.coulibaly@dcsmali.