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

Gestion des l'evenement de fermeture de workbook

6 réponses
Avatar
Thom
Bonjour,

J'aimerai que mon programme exécute une série de procédures à la fermeture
de mon application. Je veux précisément les exécuter entre la demande de
confirmation de sauvegarde et la sauvegarde.

Pour cela j'ai utilisé l'événement "BeforeClose" de mon Workbook. Ceci
fonctionne si je répond "Oui" ou "Non" mais si j'annule il continue exécuter
l'événement... et c'est pas bien!

Le message de demande de confirmation est une pop-up système d'Excel, je ne
sais pas comment récupérer l'annulation pour ensuite annuler la clôture du
workbook avec un cancel=true.

Si vous avez une petite idée, je vous en serais fort reconnaissant.

Bonne journée,

Thom

6 réponses

Avatar
Thom
Une précision :
L'évenement BeforeClose s'éxecute avant même que la demande de confirmation
de sauvegarde apparaisse.

:-s

"Thom" a écrit dans le message de news:

Bonjour,

J'aimerai que mon programme exécute une série de procédures à la fermeture
de mon application. Je veux précisément les exécuter entre la demande de
confirmation de sauvegarde et la sauvegarde.

Pour cela j'ai utilisé l'événement "BeforeClose" de mon Workbook. Ceci
fonctionne si je répond "Oui" ou "Non" mais si j'annule il continue
exécuter l'événement... et c'est pas bien!

Le message de demande de confirmation est une pop-up système d'Excel, je
ne sais pas comment récupérer l'annulation pour ensuite annuler la clôture
du workbook avec un cancel=true.

Si vous avez une petite idée, je vous en serais fort reconnaissant.

Bonne journée,

Thom



Avatar
jps
c'est quoi une pop-up système excel, thom? dans quoi réponds-tu OUI ou NON?
jps

"Thom" a écrit dans le message de news:

Une précision :
L'évenement BeforeClose s'éxecute avant même que la demande de
confirmation de sauvegarde apparaisse.

:-s

"Thom" a écrit dans le message de news:

Bonjour,

J'aimerai que mon programme exécute une série de procédures à la
fermeture de mon application. Je veux précisément les exécuter entre la
demande de confirmation de sauvegarde et la sauvegarde.

Pour cela j'ai utilisé l'événement "BeforeClose" de mon Workbook. Ceci
fonctionne si je répond "Oui" ou "Non" mais si j'annule il continue
exécuter l'événement... et c'est pas bien!

Le message de demande de confirmation est une pop-up système d'Excel, je
ne sais pas comment récupérer l'annulation pour ensuite annuler la
clôture du workbook avec un cancel=true.

Si vous avez une petite idée, je vous en serais fort reconnaissant.

Bonne journée,

Thom







Avatar
Thom
Merci Jps pour cette bonne remarque.

Je veux parler de fenêtre qui souvre quand tu as modifié un document et que
tu le referme sans avoir cliqué sur le bouton sauvegarder.

Cette fenêtre affiche le message "Voulez-vous enregistrer les modifications
apportées à 'Classeur1'?" avec en dessous les boutons Oui - Non - Annuler



"jps" a écrit dans le message de news:

c'est quoi une pop-up système excel, thom? dans quoi réponds-tu OUI ou
NON?
jps

"Thom" a écrit dans le message de news:

Une précision :
L'évenement BeforeClose s'éxecute avant même que la demande de
confirmation de sauvegarde apparaisse.

:-s

"Thom" a écrit dans le message de news:

Bonjour,

J'aimerai que mon programme exécute une série de procédures à la
fermeture de mon application. Je veux précisément les exécuter entre la
demande de confirmation de sauvegarde et la sauvegarde.

Pour cela j'ai utilisé l'événement "BeforeClose" de mon Workbook. Ceci
fonctionne si je répond "Oui" ou "Non" mais si j'annule il continue
exécuter l'événement... et c'est pas bien!

Le message de demande de confirmation est une pop-up système d'Excel, je
ne sais pas comment récupérer l'annulation pour ensuite annuler la
clôture du workbook avec un cancel=true.

Si vous avez une petite idée, je vous en serais fort reconnaissant.

Bonne journée,

Thom










Avatar
JB
Bonjour,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If IsEmpty([A1]) Then
If MsgBox("A1 pas documenté voulez vous quitter? ", vbYesNo) <>
vbYes Then
Cancel = True
[A1].Select
Exit Sub
End If
End If
'--
If IsEmpty([B2]) Then
If MsgBox("B2 pas documenté voulez vous quitter? ", vbYesNo) <>
vbYes Then
Cancel = True
[B2].Select
Exit Sub
End If
End If
End Sub

http://boisgontierjacques.free.fr/2007/fichiers/Evenementiel/WorkBookBefore Close.xls

JB

On 8 août, 10:00, "Thom" wrote:
Bonjour,

J'aimerai que mon programme exécute une série de procédures à la fermeture
de mon application. Je veux précisément les exécuter entre la deman de de
confirmation de sauvegarde et la sauvegarde.

Pour cela j'ai utilisé l'événement "BeforeClose" de mon Workbook. C eci
fonctionne si je répond "Oui" ou "Non" mais si j'annule il continue ex écuter
l'événement... et c'est pas bien!

Le message de demande de confirmation est une pop-up système d'Excel, j e ne
sais pas comment récupérer l'annulation pour ensuite annuler la clô ture du
workbook avec un cancel=true.

Si vous avez une petite idée, je vous en serais fort reconnaissant.

Bonne journée,

Thom


Avatar
Thom
Merci JB pour ta réponse,

Hélas, cela ne convient pas tout à fait. Dans le cas ou je choisi de ne pas
sauvegarder, la pop-up de demande de confirmation de sauvegarde apparait
toujours(celle d'Excel, pas la mienne).

Existe-t-il un moyen de désactiver la sauvegarde, pour la gérer complètement
manuellement?


Voici mon code :
*************
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim VbRep As Integer

VbRep = MsgBox("Voullez-vous sauvegarder avant de quitter?",
vbYesNoCancel, "Sauvegarder")

Select Case VbRep
Case vbCancel
'Annule la requête de fermeture
Cancel = True

Case vbYes
[...] "Execution du code avant fermeture

'Sauvegarde du classeur et poursuite de la requête de fermeture
ActiveWorkbook.Save

Case vbNo
'Il ne se passe rien, poursuite de la requête de fermeture

End Select

End Sub




"JB" a écrit dans le message de news:

Bonjour,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If IsEmpty([A1]) Then
If MsgBox("A1 pas documenté voulez vous quitter? ", vbYesNo) <>
vbYes Then
Cancel = True
[A1].Select
Exit Sub
End If
End If
'--
If IsEmpty([B2]) Then
If MsgBox("B2 pas documenté voulez vous quitter? ", vbYesNo) <>
vbYes Then
Cancel = True
[B2].Select
Exit Sub
End If
End If
End Sub

http://boisgontierjacques.free.fr/2007/fichiers/Evenementiel/WorkBookBeforeClose.xls

JB

On 8 août, 10:00, "Thom" wrote:
Bonjour,

J'aimerai que mon programme exécute une série de procédures à la fermeture
de mon application. Je veux précisément les exécuter entre la demande de
confirmation de sauvegarde et la sauvegarde.

Pour cela j'ai utilisé l'événement "BeforeClose" de mon Workbook. Ceci
fonctionne si je répond "Oui" ou "Non" mais si j'annule il continue
exécuter
l'événement... et c'est pas bien!

Le message de demande de confirmation est une pop-up système d'Excel, je
ne
sais pas comment récupérer l'annulation pour ensuite annuler la clôture du
workbook avec un cancel=true.

Si vous avez une petite idée, je vous en serais fort reconnaissant.

Bonne journée,

Thom


Avatar
Thom
Je viens de trouver la solution : Quand on choisi le bouton "non" il faut
préciser qu'il n'y pas eu de changement depuis l'ouverture du classeur avec
"ThisWorkbook.Saved = True"

Merci de ton aide,

Thom


"Thom" a écrit dans le message de news:

Merci JB pour ta réponse,

Hélas, cela ne convient pas tout à fait. Dans le cas ou je choisi de ne
pas sauvegarder, la pop-up de demande de confirmation de sauvegarde
apparait toujours(celle d'Excel, pas la mienne).

Existe-t-il un moyen de désactiver la sauvegarde, pour la gérer
complètement manuellement?


Voici mon code :
*************
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim VbRep As Integer

VbRep = MsgBox("Voullez-vous sauvegarder avant de quitter?",
vbYesNoCancel, "Sauvegarder")

Select Case VbRep
Case vbCancel
'Annule la requête de fermeture
Cancel = True

Case vbYes
[...] "Execution du code avant fermeture

'Sauvegarde du classeur et poursuite de la requête de fermeture
ActiveWorkbook.Save

Case vbNo
'Il ne se passe rien, poursuite de la requête de fermeture

End Select

End Sub




"JB" a écrit dans le message de news:

Bonjour,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If IsEmpty([A1]) Then
If MsgBox("A1 pas documenté voulez vous quitter? ", vbYesNo) <>
vbYes Then
Cancel = True
[A1].Select
Exit Sub
End If
End If
'--
If IsEmpty([B2]) Then
If MsgBox("B2 pas documenté voulez vous quitter? ", vbYesNo) <>
vbYes Then
Cancel = True
[B2].Select
Exit Sub
End If
End If
End Sub

http://boisgontierjacques.free.fr/2007/fichiers/Evenementiel/WorkBookBeforeClose.xls

JB

On 8 août, 10:00, "Thom" wrote:
Bonjour,

J'aimerai que mon programme exécute une série de procédures à la
fermeture
de mon application. Je veux précisément les exécuter entre la demande de
confirmation de sauvegarde et la sauvegarde.

Pour cela j'ai utilisé l'événement "BeforeClose" de mon Workbook. Ceci
fonctionne si je répond "Oui" ou "Non" mais si j'annule il continue
exécuter
l'événement... et c'est pas bien!

Le message de demande de confirmation est une pop-up système d'Excel, je
ne
sais pas comment récupérer l'annulation pour ensuite annuler la clôture
du
workbook avec un cancel=true.

Si vous avez une petite idée, je vous en serais fort reconnaissant.

Bonne journée,

Thom