Enregistrement Copie fichiers Excel avec chemin relatif
Bonjour,
Je me permets de poster ici, parce que malgré mes nombreuse recherches et différents tests, je n'arrive pas résoudre mon problème.
Je vous explique, je travaille sur un fichier Excel en format .xlsm , je souhaiterais que lors de la fermeture de ce fichier il soit créer une copie en format .xls.
Cette copie doit être faite dans un sous dossier nommé "A_valider" qui se trouve dans le même dossier que le fichier Excel de travail.
J'ai réussi à faire tout cela sans trop de problème...... Mais avec un chemin absolu !!!!! Et voilà le problème : Mon fichier de travail étant sur un réseau accessible par plusieurs personne je doit effectuer cette opération en chemin relatif !!!!!
Mais ça ne fonctionne pas, si quelqu'un pouvais regarder et me renseigner.
Par avance merci.
Bonjour,
Contrairement à à la fonction "Save copie as" qui concervera l'extension "Xlsm" changer le format n'est pas faire une copie.
celà revient à faire : fichier enregistrer sous .... et dans ce cas à la fin de votre macro le fichier actif sera celui au format "xls". ou xlsx format plus récent.
Il est donc préférable de faire une sauvegarde simple avant de faire l'enregistrement sous.
Pour le chemin relatif au fichier qui contiend la macro il nous faut savoir à quel endroit il est enregistré.
Exemple si le fichier macro se trouve dans : "D:\Perso\Test_Excel\"
Alors dans votre code vous pouvez utiliser :
Dossier=Thisworkbook.path & "\A_valider\"
Exemple enregistrer sous "xls"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'sauvegarde de l'original
ActiveWorkbook.Save
Dim Dossier As String
Dim fichier As String
Dossier = "D:\Perso\Test_Excel\A_valider\"
fichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5) & "_" & Day(Date) & "_" & Month(Date) & ".xls"
'sauvegarde format xls
ActiveWorkbook.SaveAs Filename:=Dossier & fichier, FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End SubBonjour,
L'idée est de créer une sauvegarde automatique, a chaque fermetures du fichier, dans un format .xls.
La solution que vous me proposez, est tout simplement de faire un enregistrer sous, je me suis peut-être trop pris la tête. Je vais essayer ça. Merci pour votre aide.
Concernant le chemin relatif, comme dit dans mon premier message, il sera sur un serveur accessible à plusieurs personnes. Je veux que l'enregistrement se fasse dans le sous-dossier "A_valider" dans le dossier contenant le fichier de travail.
J'ai déjà réalisé un fichier qui traite différentes macro. Donc pour éviter de complétement foutre en l'air tout mon travail je fait des mini programme que je teste d'abord en local. Je suis un débutant ça fait seulement un mois que je fais de la programmation.
J'arrive a créé des dossiers, sous dossier, imprimer a la fermeture du fichier etc...
J'espere être assez clair dans mes explications.
Merci pour votre aide.