Comment faire pour stopper une sauvegarde ?

dam660
Messages postés
21
Date d'inscription
dimanche 7 janvier 2007
Statut
Membre
Dernière intervention
5 juillet 2010
- 5 juil. 2010 à 15:31
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
- 5 juil. 2010 à 16:43
Bonjour à tous !

simple question : comment faire pour stopper une sauvegarde ?

en fait, à la place d'utiliser la boite de dialogue standard de "Save as", j'ai une userform qui la remplace.
Je l'appel via

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


Simplement, quand dans cette userform je clique sur "Annuler", le fichier se sauvegarde quand même !

je ne vois pas trop comment faire.. Une idée ?

merci !

3 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
5 juil. 2010 à 16:06
Salut
Et qu'y a t-il dans ton bouton Annuler ?
Dans cette procédure, Workbook_BeforeSave, si tu positionnes la variable Cancel à True, la véritable commande de sauvegarde ne sera pas lancée (comme expliqué dans l'aide).

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
dam660
Messages postés
21
Date d'inscription
dimanche 7 janvier 2007
Statut
Membre
Dernière intervention
5 juillet 2010
1
5 juil. 2010 à 16:23
oui j'ai lu la page d'aide concernant cette procédure !

en fait il y a un bouton "annuler" de ma création, mais comment passer cette variable Cancel (de la méthode _BeforeSave) à true, alors que c'est mon userform qui à la main ?
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
5 juil. 2010 à 16:43
Comment le Userform a t-il la main ?
Quel programme as-tu mis dans cette Sub ?
Si tu ne nous dis rien, on va pas le deviner !

Si ton bouton Annuler doit agir sur un programme qui, par exemple, tourne en boucle, il suffit d'utiliser une variable de type Boolean et déclarée en Public dans la partie Déclarations d'un Module.
Public bAnnuler As Boolean
puis, dans le code du bouton Annuler, de faire un simple
bAnnuler = True

Ensuite, dans ta Sub Workbook_BeforeSave, à l'intérieur de ta boucle (exemple), deux choses à faire :
- Insérer un DoEvents dans la boucle afin que le système puisse reprendre la main régulièrement (pour traiter le code du bouton annuler, par exemple)
- Tester l'état de ta variable pour décider de sortir :
If bAnnuler Then
    Cancel = True
    Exit Sub
End If

Pense à remettre à False cette même variable avant de commencer.
0