Bonjour Forum!
Je voudrai faire un code qui ouvre un répertoire source me copie un fichier en csv et ouvre mon répertoire cible et y copie mon fichier csv et changer l'extension en txt.
Merci d'avance !!!
Version imprimable
Bonjour Forum!
Je voudrai faire un code qui ouvre un répertoire source me copie un fichier en csv et ouvre mon répertoire cible et y copie mon fichier csv et changer l'extension en txt.
Merci d'avance !!!
Bonjour,
Ou bloques tu?
Bonjour jfontaine!
J'ai déjà fait un programme qui marche.Mais dans ce programme j'ouvre à la main mon fichier de source je copie à la main le fichier en csv que je colle dans mon répertoire cible et je change l'extension en txt à la main. J'ai vraiment pas aucune idée des codes pour automatiser cette étape.
Merci !
Justement , corona , cette partie n'est pas automatique . Et je demande de l'aide au forum.
Bonjour,
Montre nous déjà ce que tu as fait et dans quelle partie tu as besoin d'aide.
Mais le problème est que avant de débuter la macroCode:
1
2
3
4
5
6
7 Sub test() Dim Chemin As String Dim NomFichier As String Sheets("Menu").Select Chemin = Cells(3, 5).Value ' je rentre dans la cellule (3,5) le nom du repertoire source NomFichier = Cells(5, 5).Value 'je rentre dans la cellule (5,5) le nom Fichier
je fais un copier d'un fichier csv d'un répertoire je fais un coller dans un nouveau répertoire et je change l'extension du fichier .Code:Sub test()
Je voudrai automatiser cette partie. et je propose sans succès
le but serait de copier le ficher en csv NomFichier1 = Cells(5, 5).Value dans le repertoireCode:
1
2
3
4
5
6
7 Sub test() Dim NomFichier1 As String, NomFichier2 As String, MonChemin1 As String, MonChemin2 As String MonChemin1 = Cells(3, 5).Value MonChemin2 = Cells(9, 5).Value NomFichier1 = Cells(5, 5).Value
et de le coller dans le deuxième répertoireCode:MonChemin1 = Cells(3, 5).Value
en changeant l'extension en txt.Code:MonChemin1 = Cells(3, 5).Value
Merci !!!
Bonjour,
Essaie ceci :
Et stp, arrete de mettre des "!" à chaque fin de phrase, sa me donne des coup de speed, j'ai l'impression que tout va plus vite quand je te lis.Code:
1
2 ThisWorkbook.SaveCopyAs MonChemin1 & NomFichier1 & ".csv" ThisWorkbook.SaveCopyAs MonChemin2 & NomFichier1 & ".txt"
Avec le code suivant :
j'ai réussi à copier le fichier d'un répertoire et de le coller dans un autre. Mais la je bloque car je voudrai changer l'extension du fichier de csv en txt .Code:
1
2
3
4
5
6
7
8
9
10 Sub dernier() Dim fs As Object, copie As Object Set fs = CreateObject("Scripting.FileSystemObject") adressein = ThisWorkbook.Sheets("Menu").Range("E3").Value & ThisWorkbook.Sheets("Menu").Range("E5").Value adresseout = ThisWorkbook.Sheets("Menu").Range("E6").Value fs.CopyFile adressein, adresseout, True End Sub
merci
Bonjour,
Petite syntaxe pour changer l'extension d'un fichier sur un string contenant Chemin + Fichier
Si Chemin1 contient le chemin complet + le nom du fichier voici une solution pour changer l'extension par .csv
Chemin1 = "c:\test\blabla\monFichier.xls"
Petit exemple décomposé avec ThisWorkbook.FullName comme NomChemin + FichierCode:
1
2 Mid(chemin1, InStrRev(chemin1, ".")) = ".csv)" Debug.Print chemin1
Code:
1
2
3
4
5
6 Dim pos As Integer Dim NewChemin As String NewChemin = ThisWorkbook.FullName pos = InStrRev(NewChemin, ".") ' Position du point . Mid(NewChemin, pos) = ".csv)" ' Remplace .xls par .csv Debug.Print NewChemin
Bonsoir voila le code que j'ai fait et sa fait le travail au complet:
Proposez des améliorations de codes ou d'autres méthodes en tout cas merci beaucoup a tousCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub dernier() Dim fs As Object, copie As Object Dim AncienNom As String, NouveauNom As String, MonChemin As String Set fs = CreateObject("Scripting.FileSystemObject") adressein = ThisWorkbook.Sheets("Menu").Range("E3").Value & ThisWorkbook.Sheets("Menu").Range("E5").Value adresseout = ThisWorkbook.Sheets("Menu").Range("E6").Value fs.CopyFile adressein, adresseout, True AncienNom = adresseout & ThisWorkbook.Sheets("Menu").Range("E5").Value NouveauNom = adresseout & ThisWorkbook.Sheets("Menu").Range("E17").Value Name AncienNom As NouveauNom End Sub