Enregistrer sous le même dossier avec le même nom plus version

NathanZ Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
Orbital38 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

La maccro en question permet via un userform de parcourir les dossier et sélectionner un fichier puis d'y appliquer des modifications. Le chemin complet du fichier sélectionné s'inscrit dans Textbox1

J'aimerais qu'une fois toutes les modifications effectuées, le fichier ouvert soit enregistré sous le même dossier que le fichier d'origine et avec le même nom + un numéro de version à la fin.

Nom du fichier avant modifications:
D:\Documents and Settings\Bureau\Dossier1\Fichier de test.xls

Nom de la copie de fichier après modifications:
D:\Documents and Settings\Bureau\Dossier1\Fichier de test_v2.0.xls

Merci pour votre aide

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Mettre ceci dans ThisWorkBook:

Option Explicit
Dim chemsave, nom  As String
Private Sub Workbook_BeforeClose(Cancel As Boolean)
nom = Split(ActiveWorkbook.Name, ".")(0)
 chemsave = ActiveWorkbook.Path & "\" & nom & "_v2.0.xls"
 ActiveWorkbook.SaveAs Filename:=chemsave, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End Sub



0
Orbital38 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention  
 
Si il veut passer un fichier en v3.0 il faut qu'il pense à faire une routine qui gère la récupération de la chaine "v2.0" (à partir du v jusqu'au dernier . avant l'extension).
Avec les Right, Left, InStr et Split tu devrais t'en sortir.

Pour te simplifier la vie je te conseille de mettre _v1.0 de base à tes fichiers. De cette manière tu n'as pas à gérer l'ajout d'une chaine de caractère puis la mise à jour de la version, mais seulement la mise à jour du numéro de version.
Sauf si tu ne comptes faire que des v1 (qui n'apparaissent pas dans le nom) et des v2.
0