Fermeture d'un classeur quand deux sont ouverts

tactic6

XLDnaute Impliqué
Bonjour le forum
Ce code inséré dans "Thisworkbook" me permet à la fermeture d'excel d'afficher un Message Box me demandant de sauvegarder ou pas

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MonTest = MsgBox("Vous allez fermer le fichier !" & Chr$(10) & "Cliquer Oui pour enregistrer" & Chr$(10) & "Cliquer Non pour ne pas enregistrer", vbYesNoCancel)
Select Case MonTest
Case vbYes
        ActiveWorkbook.Save
        If Workbooks.Count = 1 Then Application.Quit Else ActiveWorkbook.Close
Case vbNo
        ActiveWorkbook.Saved = True
        If Workbooks.Count = 1 Then Application.Quit Else ActiveWorkbook.Close
End Select
End Sub

Si il n'y a qu'un classeur excel ouvert tout va bien
si il y a deux classeurs excel ouverts et que je ne veux pas sauvegarder ce que j'ai fait (donc clic sur Non dans le Message box)
alors j'obtiens le message d'erreur sur le fichier joint et mes deux classeurs se ferment

J'aimerais essayer d'être plus précis lors de la fermeture
plutôt que de mettre Thisworkbook je voudrais tenter de mettre "Workbook(Nom du Classeur)" mais je ne sais pas si c'est possible et comment faire
Merci
 

Pièces jointes

  • erreur.JPG
    erreur.JPG
    36 KB · Affichages: 53
  • erreur.JPG
    erreur.JPG
    36 KB · Affichages: 61
  • erreur.JPG
    erreur.JPG
    36 KB · Affichages: 60

JNP

XLDnaute Barbatruc
Re : Fermeture d'un classeur quand deux sont ouverts

Bonjour Tactic6 :),
J'ai un peu de mal à suivre l'intérêt de doubler l'automatisme d'Excel qui demande naturellement et sans programmation si on veut enregistrer le classeur dès qu'il y a eut des changement... Mais tu comptes peut-être y associer d'autre instructions...
Si je comprends bien, ta macro est présente dans les 2 classeurs. Pour être sûr que chaque macro s'occupe de son classeur, tu peut utiliser Workbooks("classeur2").Activate.
Bonne journée :cool:
 

tactic6

XLDnaute Impliqué
Re : Fermeture d'un classeur quand deux sont ouverts

Merci Michel
je vais voir ce que ça donne

Edit:
apparemment problème avec 2007
peut être une correction lors des prochaines mises a jour

Merci
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Fermeture d'un classeur quand deux sont ouverts

Re Tactic

J'ai mis une solution

ici
https://www.excel-downloads.com/threads/activeworkbook-close-sur-une-forme.110869/

Mais bon, seuls des tests en fonction du contetxe et du nombre de fiochiers ouverts , peuvent aboutir à un résultat en rapport avec la problèmatique.

Comme je le dit souvent (en fait je viens de l'inventer:)):

"Celui qui cherche a plus de chance de trouver"
 

tactic6

XLDnaute Impliqué
Re : Fermeture d'un classeur quand deux sont ouverts

Re Michel
apparemment en modifiant le code avec les lignes que tu as posté cela fonctionne
plus d'erreur mais pourquoi ça ouvre un autre classeur avant de le refermer aussi sec à la confirmation
voici le code modifié
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

NomF = ActiveWorkbook.Name
Workbooks.Add
MonTest = MsgBox("Vous allez fermer le fichier !" & Chr$(10) & "Cliquer Oui pour enregistrer" & Chr$(10) & "Cliquer Non pour ne pas enregistrer", vbYesNoCancel)
Select Case MonTest

Case vbYes
        Workbooks(NomF).Save
        If Workbooks.Count = 1 Then Application.Quit Else ActiveWorkbook.Close
Case vbNo
        Workbooks(NomF).Saved = True
        If Workbooks.Count = 1 Then Application.Quit Else ActiveWorkbook.Close
End Select
End Sub
en tout cas pour moi c'est une belle avancée
Merci
 

MJ13

XLDnaute Barbatruc
Re : Fermeture d'un classeur quand deux sont ouverts

Re tactic

Losque tu écris

Code:
Workbooks.Add

Cela signifie Worbook = classeur add= ajout donc ajout d'un classeur vierge.
EN fait Excel n'aime pas le close false si il n'y a qu"un classeur d'affiché. (c'est bizarre car sur un autre fichier, avec un USF qui s'ouvre à l'ouverture), je n'ai pas le bug mais entre temps je fait un appication.visible=false puis application.visible=true avant de fermer le fcihier mais Excel reste la sans bug)

On dira "c'est de l'Excel".
 

Discussions similaires

Réponses
8
Affichages
640

Statistiques des forums

Discussions
312 094
Messages
2 085 238
Membres
102 831
dernier inscrit
ayal