Je reviens un peu à la charge, car mon 1er post n'avait pas obtenu de
réponse satisfaisante. Certainement que ma demande n'était pas assez
précise.
Alors voilà un cas d'école.
J'ai 2 classeurs :
un de données,
un autre contenant que mes modules de programmation.
La clôture de l'application doit :
fermer le classeur de données,
puis supprimer ce classeur sur le disque,
et enfin, s'il n'existe pas d'autres classeurs ouverts, quitter Excel, sinon
fermer le classeur programme.
Cette clôture peut survenir :
soit par l'appui sur un bouton "Quitter" d'une barre d'outils personnalisée
affecté à une proc de mon classeur programme,
soit par la fermeture manuel du classeur de données (Menu Fichier/ Fermer ou
Croix [X] de la fenêtre du classeur de donées)
soit enfin par la fermeture d'Excel (Menu Fichier/ Quitter ou Croix [X] de
la fenêtre d'Excel)
Dans les 2 1er cas, j'arrive en VBA à supprimer le fichier de données de mon
disque.
Dans le dernier cas, Excel donne automatiquement la main à l'événement de
fermeture du classeur programme avant celui du classeur de données, ce qui
m'empêche de supprimer le classeur de données sur le disque.
En résumé, existe t'il une solution pour inverser les événements de
fermeture des classeurs lorsque l'on quitte Excel ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Jean-Luc,
Dans ton classeur contenant la programmation, tu insères dans le ThisWorkbook de ce dernier ceci:
Tu adaptes le nom du classeur contenant les données dans la procédure.
'----------------------------------- Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Nom As String Dim Wk As Workbook Set Wk = Workbooks("NomClasseurDonnées.xls") If Not Wk Is Nothing Then Nom = Wk.FullName Wk.Close Kill Nom If Workbooks.Count = 1 Then Application.Quit End If End If End Sub '-----------------------------------
Salutations!
"Jean-Luc CAPEL" a écrit dans le message de news: Bonjour à tous,
Je reviens un peu à la charge, car mon 1er post n'avait pas obtenu de réponse satisfaisante. Certainement que ma demande n'était pas assez précise. Alors voilà un cas d'école. J'ai 2 classeurs : un de données, un autre contenant que mes modules de programmation.
La clôture de l'application doit : fermer le classeur de données, puis supprimer ce classeur sur le disque, et enfin, s'il n'existe pas d'autres classeurs ouverts, quitter Excel, sinon fermer le classeur programme.
Cette clôture peut survenir : soit par l'appui sur un bouton "Quitter" d'une barre d'outils personnalisée affecté à une proc de mon classeur programme, soit par la fermeture manuel du classeur de données (Menu Fichier/ Fermer ou Croix [X] de la fenêtre du classeur de donées) soit enfin par la fermeture d'Excel (Menu Fichier/ Quitter ou Croix [X] de la fenêtre d'Excel)
Dans les 2 1er cas, j'arrive en VBA à supprimer le fichier de données de mon disque. Dans le dernier cas, Excel donne automatiquement la main à l'événement de fermeture du classeur programme avant celui du classeur de données, ce qui m'empêche de supprimer le classeur de données sur le disque.
En résumé, existe t'il une solution pour inverser les événements de fermeture des classeurs lorsque l'on quitte Excel ?
Merci de vos réponses et ou suggestions.
JLuc
Bonjour Jean-Luc,
Dans ton classeur contenant la programmation, tu insères dans le ThisWorkbook de ce dernier ceci:
Tu adaptes le nom du classeur contenant les données dans la procédure.
'-----------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Nom As String
Dim Wk As Workbook
Set Wk = Workbooks("NomClasseurDonnées.xls")
If Not Wk Is Nothing Then
Nom = Wk.FullName
Wk.Close
Kill Nom
If Workbooks.Count = 1 Then
Application.Quit
End If
End If
End Sub
'-----------------------------------
Salutations!
"Jean-Luc CAPEL" <jlcapel@ifth.org> a écrit dans le message de news: uSX0xTN9FHA.3132@TK2MSFTNGP12.phx.gbl...
Bonjour à tous,
Je reviens un peu à la charge, car mon 1er post n'avait pas obtenu de
réponse satisfaisante. Certainement que ma demande n'était pas assez
précise.
Alors voilà un cas d'école.
J'ai 2 classeurs :
un de données,
un autre contenant que mes modules de programmation.
La clôture de l'application doit :
fermer le classeur de données,
puis supprimer ce classeur sur le disque,
et enfin, s'il n'existe pas d'autres classeurs ouverts, quitter Excel, sinon
fermer le classeur programme.
Cette clôture peut survenir :
soit par l'appui sur un bouton "Quitter" d'une barre d'outils personnalisée
affecté à une proc de mon classeur programme,
soit par la fermeture manuel du classeur de données (Menu Fichier/ Fermer ou
Croix [X] de la fenêtre du classeur de donées)
soit enfin par la fermeture d'Excel (Menu Fichier/ Quitter ou Croix [X] de
la fenêtre d'Excel)
Dans les 2 1er cas, j'arrive en VBA à supprimer le fichier de données de mon
disque.
Dans le dernier cas, Excel donne automatiquement la main à l'événement de
fermeture du classeur programme avant celui du classeur de données, ce qui
m'empêche de supprimer le classeur de données sur le disque.
En résumé, existe t'il une solution pour inverser les événements de
fermeture des classeurs lorsque l'on quitte Excel ?
Dans ton classeur contenant la programmation, tu insères dans le ThisWorkbook de ce dernier ceci:
Tu adaptes le nom du classeur contenant les données dans la procédure.
'----------------------------------- Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Nom As String Dim Wk As Workbook Set Wk = Workbooks("NomClasseurDonnées.xls") If Not Wk Is Nothing Then Nom = Wk.FullName Wk.Close Kill Nom If Workbooks.Count = 1 Then Application.Quit End If End If End Sub '-----------------------------------
Salutations!
"Jean-Luc CAPEL" a écrit dans le message de news: Bonjour à tous,
Je reviens un peu à la charge, car mon 1er post n'avait pas obtenu de réponse satisfaisante. Certainement que ma demande n'était pas assez précise. Alors voilà un cas d'école. J'ai 2 classeurs : un de données, un autre contenant que mes modules de programmation.
La clôture de l'application doit : fermer le classeur de données, puis supprimer ce classeur sur le disque, et enfin, s'il n'existe pas d'autres classeurs ouverts, quitter Excel, sinon fermer le classeur programme.
Cette clôture peut survenir : soit par l'appui sur un bouton "Quitter" d'une barre d'outils personnalisée affecté à une proc de mon classeur programme, soit par la fermeture manuel du classeur de données (Menu Fichier/ Fermer ou Croix [X] de la fenêtre du classeur de donées) soit enfin par la fermeture d'Excel (Menu Fichier/ Quitter ou Croix [X] de la fenêtre d'Excel)
Dans les 2 1er cas, j'arrive en VBA à supprimer le fichier de données de mon disque. Dans le dernier cas, Excel donne automatiquement la main à l'événement de fermeture du classeur programme avant celui du classeur de données, ce qui m'empêche de supprimer le classeur de données sur le disque.
En résumé, existe t'il une solution pour inverser les événements de fermeture des classeurs lorsque l'on quitte Excel ?