Problème de fermeture classeur excel vba

lebcel Messages postés 13 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 16 août 2010 - 23 déc. 2009 à 11:22
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 23 déc. 2009 à 13:15
Bonjour,

J'ai créé un reporting sous Excel en VBA qui a la particularité de se fermer sans poser la question à l'utilisateur s'il veut sauver ou non car je ne souhaite pas que les utilisateurs sauvent le document.

Le problème est que lorsque je ferme ce reporting (classeur Excel), je n'ai plus accès à la fenêtre Excel. Il faut que je rétraississe la fenêtre puis que je la réaffiche.

Par exemple, si j'ai déjà un document ouvert dans la fenetre, je n'ai plus acces à ce document tant que je n'ai pas rafraichit la fenetre.

Mon code pour la fermeture du reporting est :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub

Est ce que vous avez déjà rencontré ce cas? Auriez-vous une solution?

Merci pour votre aide!

Lebcel

5 réponses

tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
23 déc. 2009 à 11:43
Bonjour,

Ce n'est pas beau de faire un close dans beforeclose.

Moi je ferai
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
   saved = true
End Sub 

pour dire de ne pas enregistrer quand on ferme le fichier. Mais as-tu prévu d'empêcher de cliquer sur Enregistrer (ou équivalent) ?

thip
0
lebcel Messages postés 13 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 16 août 2010
23 déc. 2009 à 12:05
Merci pour ta réponse. Oui, je me rends compte que ce n'est pas beau du tout ce que j'ai fait.

Je ne sais pas comment faire pour empêcher de cliquer sur le bouton Enregistrer donc je ne l'ai pas fait. Si tu sais, je suis preneuse!

Lebcel
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
23 déc. 2009 à 12:21
Bonjour
voici pour enpêcher de d'enrigistrer
premiere version
Set D = Application.CommandBars
D.ActiveMenuBar.Controls("&Fichier").Visible = False

dans ce cas tout le menu déroulant est innaccessible
deuxième version
Set D = Application.CommandBars
D.ActiveMenuBar.Controls("&Fichier").contols("Enre&gistrer").visible=false
D.ActiveMenuBar.Controls("&Fichier").contols("En®istrer sous...").visible=false
dans ce cas seules les deux sous menus sont innacessibles

Attention rétablir la visibilité à la fermeture du classeur car ces modification sont valable pour Excel et restent activent même si l'on ferme excel pour ouvrir un autre classeur

Pour fermer un classeur sans enregistrer les modifications effectuées :
Workbooks("BOOK1.XLS").Close SaveChanges:=False

Bonne journée
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 déc. 2009 à 12:30
Bonjour,

Pourquoi, dans un tel cas de figure, ne pas travailler tout simplement sur un miroir du vrai fichier et se désintéresser totalement de de que pourrait alors tenter ou non de faire l'utilisateur ?
Si l'on me répond qu'il pourrait être gênant qu'il s'amuse à le transformer et à le sauvegarder ensuite là où il saurait le retrouver, je réponds que rien ne l'empêcherait alors non plus de faire certaines autres manoeuvres....


___________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 déc. 2009 à 13:15
Et avec le principe du miroir, il est assez simple de vérifier l'absence de manoeuvres diverses.
Méthode :
- le fichier miroir est créé par (et à l') ouverture du fichier de base
- le fichier miroir ne continue que si sa date de création est celle du jour (voire pire, si l'on veut s'amuser)



____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Rejoignez-nous