XL 2010 Fichiers a renommer et onglet a copier

Wyrgle

XLDnaute Junior
Bonjour a tous,
Mon probleme : A partir de ma macro principale ds le classeur Projet., je souhaite renommer le fichier BVI (dont je connais le chemin) en TSD_BVI, copier son onglet Tab_BVI dans un nouveau classeur FORMAT_BVI et répéter l’opération tant qu’il reste des fichiers dont les noms ne commencent pas par TSD ds ce meme repertoire.

Peut-on faire cela sans ouvrir tous les fichiers a traiter ?

J'essaye avec les fonctions RENAME, les objets FSO...sans resultat.

Merci pour votre aide !
 

Wyrgle

XLDnaute Junior
Un début de piste avec ceci ?

VB:
Sub File_Management()
  Dim GestionFichier As Object
  Set GestionFichier = CreateObject("Scripting.filesystemobject")

  GestionFichier.copyfile "R:\Download\TEST_MACRO\Client1\2016\08\11\Client Recap File - 38439.csv", "R:\Download\TEST_MACRO\Client1\2016\08\11\TSD_Client Recap File - 38439.csv"
 
  Set GestionFichier = Nothing

End Sub
 

Yurperqod

XLDnaute Occasionnel
Ci-dessous une macro à tester
VB:
Sub test()
Dim fso
Dim DerLigne As Long
Dim rng As Range, cell As Range
DerLigne = Cells(Rows.Count, "G").End(xlUp).row
Dim AncienNom As String
Dim NouveauNom As String
Set fso = CreateObject("Scripting.FileSystemObject")
Set rng = ActiveSheet.Range("G12:G" & DerLigne)
For Each cell In rng.Rows
If cell Like "BVI*" Then
AncienNom = cell.Offset(, -2).Text & "\" & cell.Text
NouveauNom = Replace(AncienNom, "BVI", "Tab_BVI")
fso.CopyFile AncienNom, NouveauNom, False
End If
Next cell
End Sub
 

Wyrgle

XLDnaute Junior
Yurperqod,

Ton code ne fonctionne pas, mais je pense que je me suis mal exprimer.
Voila ce que je veux faire : En colonne G se trouve une liste de fichiers créés en meme temps que leurs repertoires. Pour chaque fichier créé, je veux renommer ce fichier A en B et en faire une copie de sauvegarde C.
J'arrive a faire cela et a boucler cette routine sur 182 fichiers pour 182 repertoires, mais il peut y avoir plusieurs fichiers créés pour un répertoire.

VB:
Sub Clients_File_Format_Process()
'
' Declaration of variables
Dim ligne As Integer

Dim File_Name As String
Dim File_Location As String
Dim Client_Number As Long
Dim Client_Quantity As Integer

' Initialize of Data
Client_Quantity = 0
ligne = 12


Cells(ligne, 2).Select
File_Location = Cells(ligne, 5).Text
File_Name = Cells(ligne, 7).Text
Client_Number = Cells(ligne, 2).Text

' Check the existence of a directory
Do While Len(File_Location) > 0
    If Len(Dir(File_Location, vbDirectory)) = 0 Then
        ' 3 = red
        Cells(ligne, 8).Interior.ColorIndex = 3
    Else
        ' 10 = green
        Cells(ligne, 6).Interior.ColorIndex = 10
        'ChDir (File_Location) ' [B]JE N ARRIVE PAS A FAIRE MARCHER CETTE LIGNE POUR ALLEGER LA SUITE[/B]
        Cells(ligne, 8).Value = FormatDateTime(FileDateTime(File_Location & File_Name), 4)
        Name File_Location & File_Name As File_Location & "TSD_" & Client_Number & "_" & File_Name
    End If
   
    ligne = ligne + 1
    Client_Quantity = Client_Quantity + 1
    File_Location = Cells(ligne, 4).Text
    File_Name = Cells(ligne, 5)
Loop
    Cells(6, 4).Value = Client_Quantity & " Clients"
   
   
End Sub


Donc comment modifier ce code pour qu'il prenne en compte les fichiers qui ne sont pas encore renommés et copiés ? (Les fichiers arrivant tt au long de la journée)

Merci pour votre aide !
 

Pièces jointes

  • PRINCIPAL pour forum 11082016.xlsm
    40.4 KB · Affichages: 38

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 214
Membres
103 158
dernier inscrit
laufin