Peut-on bloquer Excel pendant les sauvegardes automatiques ?

Wily

XLDnaute Junior
Bonjour

J’ai mis ma sauvegarde automatique sous Excel à 30mn
Et je rencontre un problème très embêtant

J’utilise très souvent des macros à l’intérieur de mon tableau
Et si je clique par malheur sur une macro au moment où Excel vient de se mettre en sauvegarde automatique, cela plante totalement

Cela ne se passe pas à chaque fois, mais cependant très souvent
Et en plus le fichier est alors irrécupérable !

J’ai donc une petite solution, mais je ne sais pas si c’est bien réalisable
Serait-il possible de bloquer totalement Excel, lorsque qu’il se met en sauvegarde automatique ?
Merci si une personne à la solution
 

Wily

XLDnaute Junior
Re : Peut-on bloquer Excel pendant les sauvegardes automatiques ?

Bonsoir Misange

J’ai donc fait l’essai sur un autre micro
Mais avec Excel 2003

Là le programme de sauvegarde plante dès le départ
J’y retourne demain pour analyser plus loin, car mon ami était obligé de s’absenter.

Ta petite macro Test « Coucou »
Me fait bien Coucou tous les 5 lancements :eek:

Mais pour la sauvegarde, Niet !! :mad:
Rien du tout
J’ai mis une MsgBox pour controler
Le compteur reste figé à 1 :(

J’ai cherché l’erreur
Mais je n'ai pas trouvé
Et vu l’heure !!
A demain
 

Wily

XLDnaute Junior
Re : Peut-on bloquer Excel pendant les sauvegardes automatiques ?

Bonsoir MichD

Merci pour ta réponse
Il est un peu tard pour l'heure pour bien comprendre le principe

Mais il me faudrait si possible, un petit exemple du code

Merci
A+
 

Misange

XLDnaute Barbatruc
Re : Peut-on bloquer Excel pendant les sauvegardes automatiques ?

Un petit exemple en pièce jointe qui sauvegarde automatiquement le classeur tous les 5 déclenchements de la macro (dans le module 1)
 

Pièces jointes

  • wily.xlsm
    14.8 KB · Affichages: 34

Wily

XLDnaute Junior
Re : Peut-on bloquer Excel pendant les sauvegardes automatiques ?

Bonjour Misange

Je me suis servi de ta dernière macro pour faire ma propre macro.

J’en ai profité pour récupérer les variables pour les afficher dans mon fichier.

Cela me permet de pouvoir consulter le nombre de lancement de ma macro et surtout le nombre de sauvegarde.

Mais je bute à nouveau sur plusieurs choses :

- Je souhaiterais pouvoir à un moment choisi, pourvoir sans devoir recharger mon fichier, réinitialiser les variables pour que celles-ci reviennent à zéro.

- Je souhaiterais également que la variable qui enregistre le nombre de lancement de la macro revienne à zéro après que la sauvegarde a été faite.
Dans le cas présent : sauvegarde tous les 5 lancements
Le compteur passe à 6 après la sauvegarde, je souhaiterais donc qu’il revienne à 1 au 6ème lancement et ainsi de suite.

- Je souhaiterais, je pense cela doit être possible ?, enregistrer dans la cellule A3 par exemple, l’heure de la dernière sauvegarde effectuée. :confused:


Je suis retourné essayer l’autre macro chez mon ami, mais pas moyen de lancer la macro, à la fin de l’enregistrement des paramètres de sauvegarde, j’obtiens une erreur 1004.
J’ai essayé de l’enregistrer dans plusieurs répertoires, mais c’est la même chose ??.

Merci à nouveau pour ton aide
A+

Code:
Sub Date_Jour()
Static D As Integer
Static S As Integer
Static N As Long

Ligne = ActiveCell.Row
Colonne = ActiveCell.Column
[Date].Copy
Cells(Ligne, Colonne).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveCell.Offset(1, 0).Range("A1").Select

D = D + 1
If D = 5 Then
S = S + 1

Sheets("feuil1").Cells(1, 1) = S
ThisWorkbook.Save
D = 0

End If
N = N + 1
Sheets("feuil1").Cells(2, 1) = N


End Sub
 

Misange

XLDnaute Barbatruc
Re : Peut-on bloquer Excel pendant les sauvegardes automatiques ?

Dans la macro que je t'ai mise en eemple,

Code:
Sub test()
Static D As Integer
Static S As Integer
Static N As Long
D = D + 1
If D = 5 Then
S = S + 1
Range("B" & S) = "sauvé " & S & "fois"
ThisWorkbook.Save
D = 0


End If
N = N + 1
Range("A" & N) = "macro lancée " & N & "fois"
End Sub

j'ai ajouté des variables static (S et N) parceque j'en avais besoin pour illustrer l'incrémentation des compteurs. MAis sinon il n'y en a qu'une seule qui compte : celle qui est remise à 0 une fois la sauvegarde effectuée c'est à dire D.

Que veux tu dire par "à un moment choisi ?" en dehors de la macro ? Ta demande change là...
dans ce cas il faut stocker la variable D comme public (en dehors de la macro) et venir modifier D par une autre macro lancée par un bouton indépendant. Mais je trouve que tu compliques terriblement

Je ne comprends pas ceci :
"- Je souhaiterais également que la variable qui enregistre le nombre de lancement de la macro revienne à zéro après que la sauvegarde a été faite.
Dans le cas présent : sauvegarde tous les 5 lancements"

mais c'est le cas !
quand tu as lancé la macro 5 fois, D =5, on sauve et on remet D à 0, que veux tu de plus ?

"Le compteur passe à 6 après la sauvegarde, "
non il passe à 0

la variable S ne te sert qu'a savoir combien de fois en tout tu as lancé la macro. Si tu veux aussi qu'elle revienne à 0 après avoir sauvegardé il te suffit de rajouter
S=0 après le
thisworkbook.save

"- Je souhaiterais, je pense cela doit être possible ?, enregistrer dans la cellule A3 par exemple, l’heure de la dernière sauvegarde effectuée."
range("A3") = Now()
a rajouter dans la macro juste avant le workbook.save


"Je suis retourné essayer l’autre macro chez mon ami, mais pas moyen de lancer la macro, à la fin de l’enregistrement des paramètres de sauvegarde, j’obtiens une erreur 1004."
il faudrait la lancer en mode pas à pas et que tu me dises sur quelle ligne elle coince.
 

Wily

XLDnaute Junior
Re : Peut-on bloquer Excel pendant les sauvegardes automatiques ?

Bonsoir

C’est vrai, je n’ai pas expliqué le pourquoi ?

En fait, si je mets D à 50, et que pour une raison quelconque, je fais manuellement une sauvegarde, il est inutile de la faire 5mn après parce que D arrive à 50 !
Mon but était donc qu’à chaque fois que je fais une sauvegarde indépendante, à l’aide d’une macro, ramener en même temps ce compteur à zéro.

Mais je m’aperçois que D appartient à la procédure et qu’a partir d’une autre macro je ne peux pas le modifier.

Seulement en me référant à ce qu’avait dit MichD
La variable T conservera sa valeur d'un appel de la procédure à un autre appel.
Elle n'est valide qu'au niveau de la procédure. Et si on veut la remettre à zéro,
il faut le faire explicitement
Je pensais donc que ce « faire explicitement » était quand même possible :confused::confused:

Pour ce qui est de :
"- Je souhaiterais également que la variable qui enregistre le nombre de lancement de la macro revienne à zéro après que la sauvegarde a été faite.
Dans le cas présent : sauvegarde tous les 5 lancements"
Excuse moi, c’est de ma faute, j’affichais la variable N au lieu de D !
Maintenant c’est Ok
Avec « range("A3") = Now() », c’est Ok aussi pour l’heure


Pour ce qui est de la macro de sauvegarde, chez mon ami, ce n’est pas grave, c’était juste pour faire un essai sur un autre micro
Chez moi ta macro fonctionne, c’est juste que si je programme le nombre de sauvegarde à 20 par exemple
Une fois rendu à 20, la macro va planter.

Si je mets 500 au lieu de 20, vu que je n’arriverai jamais à 500, il n’y aura jamais de problème !
C’est juste que je n’aime pas ce qui ne fonctionne pas logiquement.

Mais de toute façon, je pense que maintenant, une fois terminée complètement cette nouvelle macro, je n’en aurai pas besoin…

A+
 

Discussions similaires

Réponses
7
Affichages
1 K

Statistiques des forums

Discussions
312 685
Messages
2 090 938
Membres
104 703
dernier inscrit
romla937