OVH Cloud OVH Cloud

Copie de sauvegarde... je cale

4 réponses
Avatar
vpco
Bonjour la communauté,

J'ai un fichier que je sauvegarde à chaque sortie à son emplacement normal
et dont je fais une copie de sauvegarde en lecture seule dans un autre disque.

Jusque là je m'en suis pas trop mal tiré je crois.

Là où ça bug c'est que quand j'execute mon fichier de sauvegarde et bien à
sa fermeture il plante.

Voici mon code :

Sub Auto_Close()
'
Application.DisplayAlerts = False
'
If ThisWorkbook.Path = "D:\TOTO\TEST.xls" Then Exit Sub
'
ActiveWorkbook.Save
'
ActiveWorkbook.SaveAs Filename:="D:\TOTO\TEST.xls", FileFormat:= _
xlExcel9795, Password:="", WriteResPassword:="toto", ReadOnlyRecommended _
:=True, CreateBackup:=False
'
Application.DisplayAlerts = True
'
End Sub


Pourtant je pensais qu'avec la 4ème ligne du code :

If ThisWorkbook.Path = "D:\TOTO\TEST.xls" Then Exit Sub

Cela suffisait pour que si le fichier ouvert est celui de sauvegarde donc
celui qui se trouve sur D:\TOTO et bien le code Auto_Close de ce fichier
s'interrompait.

Apparemment il n'en ait rien et il n' y a pas que le code qui bug mais moi
avec.

Merci de votre aide.

Cordialement.

Excel...lent

4 réponses

Avatar
PMO
Bonjour,

A tout hasard, changez la ligne
If ThisWorkbook.Path = "D:TOTOTEST.xls" Then Exit Sub
par
If ActiveWorkbook.Path = "D:TOTOTEST.xls" Then Exit Sub

Explication si ça marche:
ThisWorkbook fait référence au classeur où s'exécute la macro
ActiveWorkbook fait référence au classeur actif

Cordialement.

PMO
Patrick Morange



Bonjour la communauté,

J'ai un fichier que je sauvegarde à chaque sortie à son emplacement normal
et dont je fais une copie de sauvegarde en lecture seule dans un autre disque.

Jusque là je m'en suis pas trop mal tiré je crois.

Là où ça bug c'est que quand j'execute mon fichier de sauvegarde et bien à
sa fermeture il plante.

Voici mon code :

Sub Auto_Close()
'
Application.DisplayAlerts = False
'
If ThisWorkbook.Path = "D:TOTOTEST.xls" Then Exit Sub
'
ActiveWorkbook.Save
'
ActiveWorkbook.SaveAs Filename:="D:TOTOTEST.xls", FileFormat:= _
xlExcel9795, Password:="", WriteResPassword:="toto", ReadOnlyRecommended _
:=True, CreateBackup:úlse
'
Application.DisplayAlerts = True
'
End Sub


Pourtant je pensais qu'avec la 4ème ligne du code :

If ThisWorkbook.Path = "D:TOTOTEST.xls" Then Exit Sub

Cela suffisait pour que si le fichier ouvert est celui de sauvegarde donc
celui qui se trouve sur D:TOTO et bien le code Auto_Close de ce fichier
s'interrompait.

Apparemment il n'en ait rien et il n' y a pas que le code qui bug mais moi
avec.

Merci de votre aide.

Cordialement.

Excel...lent


Avatar
vpco
Salut PMO,

Merci pour ton aide et les explications.

Malheureusement cela ne fonctionne pas. Quand j'ouvre la copie de sauvegarde
du fichier sur le dique D:, j'ai toujours le même plantage à la 4ème ligne
de commande du code à la fermeture du fichier. Avec message Erreur Exécution
1004 : Echec de l'opération.'D:TOTOTest.xls' est protégé en écriture.

Si tu as d'autres idées je suis preneur.

Cordialement.

Excel...lent
Avatar
JpPradier
Bonjour vpco

Le path fait référence au chemin sans le nom du fichier. Essaye avec :

If ThisWorkbook.Path = "D:TOTO" Then Exit Sub

j-p
Avatar
vpco
Salut à tous,

Ca y est je le tiens.

En effet Jp je n'avais pas fait attention que dans mon PATH j'avais glissé
malencontreusement le nom du fichier. Evidemment comme ça, ça marcher moins
bien comme dirait l'autre.

Bref je crois que je tiens le résultat :

Sub Auto_Close()
'
On Error Resume Next
Application.DisplayAlerts = False
'
If ThisWorkbook.Path = "D:TOTO" Then Exit Sub
'
ActiveWorkbook.Save
'
Kill "D:TOTOTEST.xls"

ActiveWorkbook.SaveAs Filename:="D:TOTOTEST.xls", FileFormat:= _
xlExcel9795, Password:="", WriteResPassword:="toto", ReadOnlyRecommended _
:úlse, CreateBackup:úlse
'
Application.DisplayAlerts = True
'
End Sub

Merci à tous en tout pour vos idées.

Cordialement.

Marc