yannick63430
XLDnaute Junior
Bonjour à toutes et à tous,
je voudrais créer un fichier excel où lorsque l'on veut fermer ce dernier une boîte de dialogue à choix multiple apparaît en proposant 4 choix :
- simple consultation (1)
- travaux en cours (2)
- travaux à réviser (3)
- travaux terminés (4)
En fonction du choix, une ou plusieurs macros s'exécutent :
- (1) : fermeture sans sauvegarde
- (2) : impression via un userform
- (3) : ...
- (4) : ...
Pour cela, dans le thisworkbook, j'ai insérer la macro :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
UserForm2.Show
End Sub
Au niveau de la boite de dialogue, j'ai réalisé le code suivant :
Private Sub UserForm_Activate()
A1.Value = False
A2.Value = False
A3.Value = False
A4.Value = False
End Sub
Private Sub commandbutton1_click()
Dim réponse As Long
Application.ScreenUpdating = False
If A1.Value = True Then
ActiveWorkbook.Close SaveChanges:=False
End If
If A2.Value = True Then
Réalisation_Synthèse_Methode
Réalisation_CP_N_Synthèse
ActiveWorkbook.Close SaveChanges:=True
End If
If A3 = True Then
Réalisation_Synthèse_Methode
Réalisation_CP_N_Synthèse
Reponse = MsgBox("ATTENTION " & Environ("username") & " Veuillez Imprimer SEULEMENT l'onglet PS", vbCritical + vbYesNo, "Que devez-vous faire!")
Sheets("E - Conclusion").Select
End If
If A4 = True Then
Réalisation_Synthèse_Methode
Réalisation_CP_N_Synthèse
sautdepage
Reponse = MsgBox("ATTENTION " & Environ("username") & " Veuillez Imprimer les notes de travail", vbCritical + vbYesNo, "Que devez-vous faire!")
Sheets("E - Conclusion").Select
End If
UserForm2.Hide
Application.ScreenUpdating = True
End Sub
MON PROBLEME :
en sélectionnant le premier choix, une erreur apparaît :
Erreur d’exécution 400
Feuille déjà affichée, affichage modale impossible
Je pense que en demandant de fermer mon fichier dans le choix 1, Excel veux relancer ma boîte de dialogue via Private Sub Workbook_BeforeClose(Cancel As Boolean), d'où redondance!!
Je ne sais donc pas comment faire pour pouvoir fermer excel sans relancer ma boîte de dialogue pour le choix n°1 et la même chose pour les trois autres choix.
En espérant avoir été clair, merci d'avance
Cordialement
je voudrais créer un fichier excel où lorsque l'on veut fermer ce dernier une boîte de dialogue à choix multiple apparaît en proposant 4 choix :
- simple consultation (1)
- travaux en cours (2)
- travaux à réviser (3)
- travaux terminés (4)
En fonction du choix, une ou plusieurs macros s'exécutent :
- (1) : fermeture sans sauvegarde
- (2) : impression via un userform
- (3) : ...
- (4) : ...
Pour cela, dans le thisworkbook, j'ai insérer la macro :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
UserForm2.Show
End Sub
Au niveau de la boite de dialogue, j'ai réalisé le code suivant :
Private Sub UserForm_Activate()
A1.Value = False
A2.Value = False
A3.Value = False
A4.Value = False
End Sub
Private Sub commandbutton1_click()
Dim réponse As Long
Application.ScreenUpdating = False
If A1.Value = True Then
ActiveWorkbook.Close SaveChanges:=False
End If
If A2.Value = True Then
Réalisation_Synthèse_Methode
Réalisation_CP_N_Synthèse
ActiveWorkbook.Close SaveChanges:=True
End If
If A3 = True Then
Réalisation_Synthèse_Methode
Réalisation_CP_N_Synthèse
Reponse = MsgBox("ATTENTION " & Environ("username") & " Veuillez Imprimer SEULEMENT l'onglet PS", vbCritical + vbYesNo, "Que devez-vous faire!")
Sheets("E - Conclusion").Select
End If
If A4 = True Then
Réalisation_Synthèse_Methode
Réalisation_CP_N_Synthèse
sautdepage
Reponse = MsgBox("ATTENTION " & Environ("username") & " Veuillez Imprimer les notes de travail", vbCritical + vbYesNo, "Que devez-vous faire!")
Sheets("E - Conclusion").Select
End If
UserForm2.Hide
Application.ScreenUpdating = True
End Sub
MON PROBLEME :
en sélectionnant le premier choix, une erreur apparaît :
Erreur d’exécution 400
Feuille déjà affichée, affichage modale impossible
Je pense que en demandant de fermer mon fichier dans le choix 1, Excel veux relancer ma boîte de dialogue via Private Sub Workbook_BeforeClose(Cancel As Boolean), d'où redondance!!
Je ne sais donc pas comment faire pour pouvoir fermer excel sans relancer ma boîte de dialogue pour le choix n°1 et la même chose pour les trois autres choix.
En espérant avoir été clair, merci d'avance
Cordialement