[RESOLU] Couper coller un fichier sans modifier son nom

richert90

XLDnaute Occasionnel
Bonjour à tous,

Voilà mon problème. J'ai un répertoire A dans lequel j'ai un fichier "test.txt". Je souhaite couper-coller ce fichier dans un répertoire "B" mais sans avoir besoin de modifier son nom. Le tout en VBA.
J'ai vu différents codes sur le net pour le faire mais à chaque fois, on doit spécifier le nom du fichier lors du "collage" et moi je veux éviter ça car je n'ai pas de moyens de récupérer le nom du fichier.

Voilà le code que j'ai utiliser jusqu'ici :
Code:
Dim myFso As Object
Set myFso = CreateObject("Scripting.FileSystemObject")
     
     repertoire_archive = Sheets("Menu").Range("C30").Value 'récupération chemin répertoire archive
     
     Sheets("Liste Fichiers").Select
     For i = 1 To Range("A" & Rows.Count).End(xlUp).Row 'pour chaque fichier (on a aussi le chemin avec)
        chemin_nom_fichier = Range("A" & i).Value
        myFso.MoveFile Range("A" & i).Value, repertoire_archive & "\" & date_jour
     Next i

Mais dans le cas du code, il renomme le fichier avec le nom de la variable date_jour alors que date_jour est un répertoire et je veux que le fichier soit copié dans ce répertoire avec le même nom qu'il avait.

Merci d'avance de votre aide
 
Dernière édition:

Iznogood1

XLDnaute Impliqué
Re : Couper coller un fichier sans modifier son nom

Bonjour,

Tu peux utiliser une fonction du type ci-dessous à inclure dans ta boucle
Code:
'Exemple d'utilisation:
'Transfert("C:\toto\","C\tata\","test.txt")
'
'Ne pas oublier le "\" final dans les noms de réperoire


Sub Transfert(AncienRep As String, NouveauRep As String, Fichier As String)
  If FileExists(AncienRep & Fichier) Then
      SetAttr AncienRep & Fichier, vbNormal 'optionnel
      FileCopy AncienRep & Fichier, NouveauRep & Fichier
      Kill AncienRep & Fichier
   End If
End Sub
 

richert90

XLDnaute Occasionnel
Re : Couper coller un fichier sans modifier son nom

Bonjour,

Merci mais du coup pour la paramètre de la fonction (le 3 ème paramètre: nom du fichier), est-ce qu'il existe un moyen de le récupérer automatiquement en VBA à partir d'un chemin donné?
Ex: "C:/Mes documents/Travail/Ex/test.csv" on veut extraire automatiquement test.csv?

Merci d'avance,
 

Iznogood1

XLDnaute Impliqué
Re : Couper coller un fichier sans modifier son nom

Inspire-toi de cet exemple

Code:
Sub PathExpole()
Dim MonItem As String
Dim MonPath As String
Dim MonFichier As String
Dim i As Integer

MonItem = "C:\temp\temp2\fichier.xls"

i = InStr(1, StrReverse(MonItem), "\", vbTextCompare)
If i <> 0 Then
MonPath = Left(MonItem, Len(MonItem) - i)
MonFichier = Right(MonItem, Len(MonItem) - i - 2)
End If
MsgBox MonPath & " - " & MonFichier
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 322
Membres
102 862
dernier inscrit
Emma35400