Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fermer excel par vba

6 réponses
Avatar
moustic
Salut ta tous, par Toutatis!

Petit soucis pour fermer excel avec vba.
Pour tenir une caisse boisson au travail, dans un fichier nommé
"caisse.xls", j'ai créé une macro qui à l'ouverture:
- liste les fichiers du dossier courant,
- ouvre le dernier créé,
- sélectionne et copie des données,
- ferme ce fichier,
- colle les données dans "caisse.xls".
Et aussi une autre macro appelée par un bouton qui:
- sélectionne et copie toutes les cellules du fichier en cours,
- ouvre un nouveau fichier et formate la date pour créer un nom de fichier,
- colle toutes les cellules dans ce nouveau fichier,
- enregistre ce fichier avec le nom créé du genre "070515.xls".
Je n'ai donc plus besoin du fichier "caisse.xls" et je voudrais fermer excel
sans enregistrer les modifications puisqu'il est sauvé sous un autre nom.
J'arrive bien à fermer le classeur mais pas excel.
J'ai bien essayé plein de trucs glané sur ce forum mais rien à faire.

Merci d'avance pour vos solutions.
Dédé le Belge, dit Moustic

6 réponses

Avatar
FFO
Salut moustic
As tu essayé de rajouter en fin de code l'instruction :

Application.Quit

Peut être ta solution
Dis moi !!!


Salut ta tous, par Toutatis!

Petit soucis pour fermer excel avec vba.
Pour tenir une caisse boisson au travail, dans un fichier nommé
"caisse.xls", j'ai créé une macro qui à l'ouverture:
- liste les fichiers du dossier courant,
- ouvre le dernier créé,
- sélectionne et copie des données,
- ferme ce fichier,
- colle les données dans "caisse.xls".
Et aussi une autre macro appelée par un bouton qui:
- sélectionne et copie toutes les cellules du fichier en cours,
- ouvre un nouveau fichier et formate la date pour créer un nom de fichier,
- colle toutes les cellules dans ce nouveau fichier,
- enregistre ce fichier avec le nom créé du genre "070515.xls".
Je n'ai donc plus besoin du fichier "caisse.xls" et je voudrais fermer excel
sans enregistrer les modifications puisqu'il est sauvé sous un autre nom.
J'arrive bien à fermer le classeur mais pas excel.
J'ai bien essayé plein de trucs glané sur ce forum mais rien à faire.

Merci d'avance pour vos solutions.
Dédé le Belge, dit Moustic


Avatar
moustic
Salut FFO et merci pour ta promptitude !

Oui bien sur. Voici le code du bouton "Fermer" du fichier "caisse.xls"

Sub Fermer()
ActiveWorkbook.Close SaveChanges:úlse
Application.Quit
End Sub

instructions que je pourrais inclure dans la procédure d'enregistrement pour
faire d'une pierre deux coups mais j'aime bien les boutons !!!
Avatar
FFO
Mais qu'attends tu de plus ???
Cette instruction doit suffir pour fermer Excel
N'est il pas ???


Salut FFO et merci pour ta promptitude !

Oui bien sur. Voici le code du bouton "Fermer" du fichier "caisse.xls"

Sub Fermer()
ActiveWorkbook.Close SaveChanges:úlse
Application.Quit
End Sub

instructions que je pourrais inclure dans la procédure d'enregistrement pour
faire d'une pierre deux coups mais j'aime bien les boutons !!!


Avatar
cousinhub
Bonjour moustic
Ayant fermer ton classeur, il ne peut plus effectuer d'autre ligne, non?
essaie dans le code This Workbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Quit
End Sub

Peut-être (enfin, chez moi, cela fonctionne)

Salut FFO et merci pour ta promptitude !

Oui bien sur. Voici le code du bouton "Fermer" du fichier "caisse.xls"

Sub Fermer()
ActiveWorkbook.Close SaveChanges:úlse
Application.Quit
End Sub

instructions que je pourrais inclure dans la procédure d'enregistrement pour
faire d'une pierre deux coups mais j'aime bien les boutons !!!


Avatar
moustic
Eh que diable, en effet il devrait être mais voila, il n'est hélas pas!

Je suis obligé de cliquer sur le bouton de fermeture d'excel après fermeture
du classeur. C'est con d'avoir cogité autant pour faire tourner mon programme
et je confirme bien qu'il fonctionne correctement.

Cela ne viendrait-il pas du fait qu'un autre fichier aie été ouvert puis
fermé avec "ActiveWindow.Close" dans un premier temp puis modifier en
"ActiveWorkbook.Close" par la suite mais sans plus de résultat et aussi
ouverture d'un nouveau fichier et fermeture après enregistrement ?
Quelque chose ne reste-t-il pas actif ?
Dis-moi vite, je brule d'impatience ! et merci encore pour ton intervention.
Moustic
Avatar
moustic
Salut cousinhub

Effectivement, comme cela, ça va mieux !
J'avais bien tenté cette voie mais avec l'instruction "Me.Close
SaveChanges:úlse" récupérée sur un des sites souvent mentionné.

Merci beaucoup et bonne soirée à tous.

Moustic