Faire une copie d'un fichier ouvert

Bonjour,

J'aimerais copier un fichier dans un autre répertoire avant fermeture de ce classeur. La macro fonctionne,sauf que je n'arrive pas à lui demander de conserver le nom du classeur actif : fichier 2008 dans répertoire x reste fichier 2008 dans répertoire y.

2008 est fictif, je ne puis nommer le classeur, car la macro s'applique à tous les classeurs du répertoire x.

Voici le code :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Chemin As String, Fichier As String

Chemin = "C:\essais\Sauvegarde\"

Fichier = "NomClasseur_" & ".xlsm"

ActiveWorkbook.SaveCopyAs Chemin & Fichier

End Sub

Merci d'avance pour tout coup de main.

Bonjour

Pourquoi tu ne nommes pas ta copie avec le nom de ton classeur

Pas testé

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Chemin As String, Fichier As String
Chemin = "C:\essais\Sauvegarde\"
Fichier = ThisWorkbook.Name                 '"NomClasseur_" & ".xlsm"
ActiveWorkbook.SaveCopyAs Chemin & Fichier
End Sub

Bonjour,

Salut Banzai, je vois que tu viens toujours au secours de malheureux piégés par vba. Tu m'as déjà sortie de bien de faux pas. Cette fois, je dois sauvegarder une copie d'un classeur ouvert dans un autre répertoire. Je ne puis nommer le classeur car son nom est variable. Par un userform, l'un de mes collègues tape le nom d'un classeur, le classeur s'ouvre, il est modifié, la macro enregistre les modifications automatiquement, puis doit faire une copie dans le répertoire backup. La situation est encore plus complexe que cela, car normalement, je dois le copier en désactivant les macros ou en neutralisant le mot de passe (nouveaux classeurs destinés à subir des recherches). J'ai récupéré sur internet, une macro qui désactive les macros, vu la complexité, je vais faire tout cela en 2 temps.

Je t'envoie un test.

371essais10.xlsm (23.83 Ko)

Bonjour

Voici l'essai que j'ai fait : Résultat concluant

J'ai une copie du fichier dans le répertoire Backup

Private Sub SaveWithoutMacros()
Dim Chemin As String, Fichier As String

'Chemin = "C:\essais\Backup\"
Chemin = ThisWorkbook.Path & Application.PathSeparator & "Backup" & Application.PathSeparator
Fichier = ThisWorkbook.Name
ActiveWorkbook.SaveCopyAs Chemin & Fichier
End Sub

Bonsoir,

Super cela fonctionne. Je vais maintenant m'attaquer au script pour désactiver toutes les macros de ce dernier classeur.

Merci pour l'aide.

Bonne soirée

Rechercher des sujets similaires à "copie fichier ouvert"