Vba: Excel ne se ferme pas, Classeur masqué, BeforeClose
L28
Messages postés
159
Date d'inscription
Statut
Membre
Dernière intervention
-
L28 Messages postés 159 Date d'inscription Statut Membre Dernière intervention -
L28 Messages postés 159 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
J'ai un petit problème de programmation sur VBA:
Je me suis fait un fichier excel Budget, pour gérer au mieux mes dépenses. Afin de l'améliorer et le rendre nomade j'ai crée un deuxième, sans macro, qui ne comporte que les dépenses. Celui ci a pour but d'être modifiable par mon Windows Phone.
Pour cela je dois assurer une liaison entre les deux. Pour faire simple une plage de donnée est partagée entre le fichier Budget et le fichier Dépenses.
Pour importer mes données, j'ouvre le fichier Dépenses en masqué et le fichier Budget en Principal. Lorsque je veux fermer le fichier Budget. Je ferme les deux classeurs à l'aide des codes suivants.
Pourtant Excel ne se ferme pas. Les classeurs sont fermés mais pas excel et je ne comprends pas pourquoi. De plus lorsque j'ouvre le fichier budget une nouvelle fois, les deux tableaux sont masqués.
Merci d'avance pour votre aide!
Bonne soirée!
J'ai un petit problème de programmation sur VBA:
Je me suis fait un fichier excel Budget, pour gérer au mieux mes dépenses. Afin de l'améliorer et le rendre nomade j'ai crée un deuxième, sans macro, qui ne comporte que les dépenses. Celui ci a pour but d'être modifiable par mon Windows Phone.
Pour cela je dois assurer une liaison entre les deux. Pour faire simple une plage de donnée est partagée entre le fichier Budget et le fichier Dépenses.
Pour importer mes données, j'ouvre le fichier Dépenses en masqué et le fichier Budget en Principal. Lorsque je veux fermer le fichier Budget. Je ferme les deux classeurs à l'aide des codes suivants.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Sauvegarder les fichiers ?", vbYesNoCancel, "Fermeture d'Excel")
Case vbYes
Workbooks("Depenses").Worksheets("Depenses").Range("MDepenses").Value = Workbooks("Budget").Worksheets("BudgetGlob").Range("Depenses").Value
Workbooks("Depenses").Save
Workbooks("Budget").Save
Workbooks("Depenses").Close
Cancel = False
Application.Quit
Case vbNo
Workbooks("Depenses").Close
Application.Quit
Case Else
Cancel = True
End Select
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open ("C:\Users\Greg\Desktop\Depenses.xlsx")
Workbooks("Budget").Worksheets("BudgetGlob").Range("Depenses").Value = Workbooks("Depenses").Worksheets("Depenses").Range("MDepenses").Value
ActiveWindow.Visible = False
Workbooks("Budget").Activate
Application.ScreenUpdating = True
End Sub
Pourtant Excel ne se ferme pas. Les classeurs sont fermés mais pas excel et je ne comprends pas pourquoi. De plus lorsque j'ouvre le fichier budget une nouvelle fois, les deux tableaux sont masqués.
Merci d'avance pour votre aide!
Bonne soirée!
5 réponses
Bonjour,
Workbooks("Depenses") ne serait-ce pas plutôt Workbooks("Depenses.xlsx") ?
et idem pour toutes les lignes Workbooks.
Lorsque je modifie ces lignes, ton code fonctionne correctement
Workbooks("Depenses") ne serait-ce pas plutôt Workbooks("Depenses.xlsx") ?
et idem pour toutes les lignes Workbooks.
Lorsque je modifie ces lignes, ton code fonctionne correctement
Bonjour et bonne année!
Je suis désolé de ne pas avoir donné de "nouvelles" avant, mais j'étais très occupé.
L'ajout de l'extension ne résout pas le problème malheureusement. J'ai réussi à résoudre celui des tableaux masqués. Mais pour la fermeture d'excel j'ai toujours le même problème. Tous se ferme, je n'ai plus de projet ouverts dans VBA, mais excel en lui même ne se ferme pas...
En tout cas merci tout de même pour ta réponse!
Pour l'instant j'utilise une méthode... barbare... expliqué au lien suivant:
https://answers.microsoft.com/fr-fr/office/forum/office_2010-excel/pour-quitter-excel-en-vba-jutilise-applicationquit/dd5efa26-ba01-4a12-a907-21118a5ff334
Shell("taskkill /F /IM Excel.exe")
On a donc le code suivant:
Pour ceux que ça pourrai intéresser ou si quelqu'un trouve la raison de cette non fermeture...
Je fermerai le sujet d'ici peu sauf si quelqu'un trouve un autre solution.
Je suis désolé de ne pas avoir donné de "nouvelles" avant, mais j'étais très occupé.
L'ajout de l'extension ne résout pas le problème malheureusement. J'ai réussi à résoudre celui des tableaux masqués. Mais pour la fermeture d'excel j'ai toujours le même problème. Tous se ferme, je n'ai plus de projet ouverts dans VBA, mais excel en lui même ne se ferme pas...
En tout cas merci tout de même pour ta réponse!
Pour l'instant j'utilise une méthode... barbare... expliqué au lien suivant:
https://answers.microsoft.com/fr-fr/office/forum/office_2010-excel/pour-quitter-excel-en-vba-jutilise-applicationquit/dd5efa26-ba01-4a12-a907-21118a5ff334
Shell("taskkill /F /IM Excel.exe")
On a donc le code suivant:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Select Case MsgBox("Sauvegarder les fichiers ?", vbYesNoCancel, "Fermeture dExcel") Case vbYes Application.ScreenUpdating = False Workbooks("Depenses.xlsx").Worksheets("Depenses").Range("MDepenses").Value = Workbooks("Budget.xlsm").Worksheets("BudgetGlob").Range("Depenses").Value Workbooks("Depenses.xlsx").Activate ActiveWindow.Visible = True Workbooks("Depenses.xlsx").Save Workbooks("Depenses.xlsx").Saved = True Workbooks("Depenses.xlsx").Close Workbooks("Budget.xlsm").Save Workbooks("Budget.xlsm").Saved = True 'Cancel = False Case vbNo Application.ScreenUpdating = False Workbooks("Budget.xlsm").Saved = True Workbooks("Depenses.xlsx").Saved = True Workbooks("Depenses.xlsx").Close Case Else Cancel = True End Select Application.ScreenUpdating = True Shell ("taskkill /F /IM Excel.exe") End Sub
Pour ceux que ça pourrai intéresser ou si quelqu'un trouve la raison de cette non fermeture...
Je fermerai le sujet d'ici peu sauf si quelqu'un trouve un autre solution.
Bonjour,
Désolé je n'ai pas eu de notification de votre réponse.
Il s'agit d'un fichier perso que j'ai créé personnellement. Le système ci dessus fonctionne bien que je ne l'(apprécie pas de trop (il suffit de travailler en parallèle sur un autre fichier excel pour tout perdre)
Je ne sais pas si j'ai répondu à votre question
Désolé je n'ai pas eu de notification de votre réponse.
Il s'agit d'un fichier perso que j'ai créé personnellement. Le système ci dessus fonctionne bien que je ne l'(apprécie pas de trop (il suffit de travailler en parallèle sur un autre fichier excel pour tout perdre)
Je ne sais pas si j'ai répondu à votre question
Bonsoir L28,
Ma question il y a longtemps que je l'ai oubliée pour savoir si la réponse est adaptée ;-)
C'est sûr que la méthode 'barbare' doit présenter pas mal de risques et le quit me semble plus adapté.
Il faudrait peut-être fermer aussi ton fichier perso qui lui continue de dérouler sa procédure ?
Ma question il y a longtemps que je l'ai oubliée pour savoir si la réponse est adaptée ;-)
C'est sûr que la méthode 'barbare' doit présenter pas mal de risques et le quit me semble plus adapté.
Il faudrait peut-être fermer aussi ton fichier perso qui lui continue de dérouler sa procédure ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir gbinforme,
Actuellement voici ce que j'effectue:
Lors de la fermeture d'excel (croix fermer)
- demande si on veux sauvegarder
si oui on sauvegarde les deux fichier
on ferme le fichier "dépenses"
on ferme le fichier "budget"
on essaye de quitter Excel
Mais la dernière ne fonctionne pas...
Ferme le fichier de macro perso? fermer le projet vba? comment fais on?
Actuellement voici ce que j'effectue:
Lors de la fermeture d'excel (croix fermer)
- demande si on veux sauvegarder
si oui on sauvegarde les deux fichier
on ferme le fichier "dépenses"
on ferme le fichier "budget"
on essaye de quitter Excel
Mais la dernière ne fonctionne pas...
Ferme le fichier de macro perso? fermer le projet vba? comment fais on?