Gestion des l'evenement de fermeture de workbook

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thom
Le #4808911
Une précision :
L'évenement BeforeClose s'éxecute avant même que la demande de confirmation
de sauvegarde apparaisse.

:-s

"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



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

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

:-s

"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







Thom
Le #4808871
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"
Une précision :
L'évenement BeforeClose s'éxecute avant même que la demande de
confirmation de sauvegarde apparaisse.

:-s

"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










JB
Le #4808861
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"
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


Thom
Le #4808761
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"
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"
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


Thom
Le #4808671
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"
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"
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"
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







Publicité
Poster une réponse
Anonyme