Renommer un fichier avec un nom variable

Bonjour,

Cette macro permet de copier un fichier vers un autre dossier sans l’ouvrir.

Pourriez-vous m'aider comment peut-on renommer ce fichier qui a été copié dans le dossier de destination avec la date qui se trouve dans la cellule B1 de la feuille active. Le nouveau nom du fichier serai « C:\Test 2\Diapo 15.01.2016.xls ».

Sub CopierFichier()
Dim fso As Object, Src$, Dest$, Fich$

  Set fso = CreateObject("Scripting.FileSystemObject")
  Src = "C:\Test\"
  Dest = "C:\Test 2\"
  Fich$ = "Diapo.xls"
  fso.CopyFile Src & Fich, Dest & Fich

End Sub
 
29copierfichier.zip (9.08 Ko)

Bonjour

Essaie ceci -->

Fich$ = "Diapo_" & Format(Date, "yymmdd") & ".xls"

Si ok, lors de ta réponse veille à clôturer le fil en cliquant su la case à cocher à coté du bouton Editer

Crdlt

Merci pour ta réponse, mais, çà ne fonctionne pas

Sub CopierFichier()
Dim fso As Object, Src$, Dest$, Fich$

  Set fso = CreateObject("Scripting.FileSystemObject")
  Src = "C:\Test\"
  Dest = "C:\Test 2\"
  Fich$ = "Diapo_" & Format(Date, "yymmdd") & ".xls"
  fso.CopyFile Src & Fich, Dest & Fich

End Sub
 

Bonsoir Sophang

Bonsoir Dan

Je pense qu'il te faut deux variables

une avec le nom du fichier source

une autre avec le nom du fichier renommer comme tu le souhaite

Sub CopierFichier()
Dim fso As Object, Src$, Dest$, Fich$,FichD$

  Set fso = CreateObject("Scripting.FileSystemObject")
  Src = "C:\Test\"
  Dest = "C:\Test 2\"
  Fich = "Diapo.xls"
  FichD = "Diapo_" & Format(Date, "yymmdd") & ".xls"
  fso.CopyFile Src & Fich, Dest & FichD

End Sub

Fred

Bonjour Fred,

Merci pour ta réponse, mais je ne comprends pas pourquoi ta macro me copie le fichier avec la date "Diapo_160118.xls". Elle ne tient pas compte de la date qui est en cellule B1.

Cordialement.

Bonjour Fred,

Merci pour ta réponse, mais je ne comprends pas pourquoi ta macro me copie le fichier avec la date "Diapo_160118.xls". Elle ne tient pas compte de la date qui est en cellule B1.

Cordialement.

Re

Merci pour ta réponse, mais je ne comprends pas pourquoi ta macro me copie le fichier avec la date "Diapo_160118.xls".

Fred a utilisé une partie de ce que je t'avais donné.

Sinon modifie cette ligne comme ceci :

FichD = "Diapo_" & Range("B1") & ".xls"

Si ok, clique sur le v vert à coté du bouton Editer lors de ta réponse afin de clôturer le fil

Cordialement

Je suis perdu là. Maintenant, j'ai le message "Chemin d'accès introuvable".

Sub CopierFichier()
Dim fso As Object, Src$, Dest$, Fich$, FichD$

  Set fso = CreateObject("Scripting.FileSystemObject")
  Src = "C:\Test\"
  Dest = "C:\Test 2\"
  Fich = "Diapo.xls"
  FichD = "Diapo_" & Range("B1") & ".xls"
  fso.CopyFile Src & Fich, Dest & FichD

End Sub

re

Dans le code que je t'ai donné, j'ai fiât une petite erreur

mets plutot ceci :

FichD = "Diapo_" & Format(Range("B1"), "yymmdd") & ".xls"

si tu as un message d'accès introuvable, c'est que ton répertoire n'est pas celui que tu indiques dans ta macro

A te relire

Au final, çà donnerait cette macro, mais je n'arrive toujours pas à comprendre pourquoi le code ne copie pas avec la date de la cellule B1. Le fichier recopié donne "Diapo_150118.xls". Je ne sais même pas d'où vient cette date, car en B1 la date est au 18.01.2015.

Sub CopierFichier()
Dim fso As Object, Src$, Dest$, Fich$, FichD$

  Set fso = CreateObject("Scripting.FileSystemObject")
  Src = "C:\Test\"
  Dest = "C:\Test 2\"
  Fich = "Diapo.xls"
  FichD = "Diapo_" & Format(Range("B1"), "yymmdd") & ".xls"
  fso.CopyFile Src & Fich, Dest & FichD

End Sub

bonjour

150118= année 2015 mois 01 janvier jour 18 => car dans le format tu as noté yymmdd (year month day)

fred

Re

Comme précisé par Fred.

L'avantage étant qu'en commençant par l'année ce sera toujours trié correctement dans le répertoire

Et surtout ne pas mettre des Points entre les chiffres !!!

Remplace plutôt par des traits --> _ ou -

Crdlt

Cà ! Je n'y avais pas pensé au format de la date, je peux aller me cacher !

Encore merci.

Rechercher des sujets similaires à "renommer fichier nom variable"