Déplacer des fichiers d'un dossier à un autre

Bonjour à tous,

Voilà mon problème, j'ai une première macro (très complexe) qui me converti des fichiers CSV en XLS puis en TRA le tout dans le même dossier (par exemple un dossier nommé TEST).

Ce que j'aimerai faire par la suite c'est sauvegarder les fichiers xls dans un nouveau dossier nommé par exemple EXCEL et les fichiers TRA dans un dossier nommé par exemple TEXTE (les dossiers TEXTE et EXCEL sont dans le dossier TEST).

Ensuite j'aimerai supprimer les fichiers CSV qui à la base m'ont permis de faire la conversion.

Bonjour,

Tu pourrais mettre un petit fichier pour mieux t'aider.

Cdlt.

Re-bonjour,

J'ai une centaine de fichiers, là j'ai juste envoyé un échantillon, la macro marche à merveille, il suffit juste de cliquer sur le bouton.

Cordialement.

282154.zip (13.27 Ko)
182154.zip (18.85 Ko)

Bonjour,

Essaie ainsi (Attention, fais des essais d'abord dans un répertoire de sauvegarde....)

Sub fava()
'Copier les fichiers xls et TAR 'Si l'extension est bien en majuscule
Dim Rep1 As String, RepExcel As String, RepTexte As String
Rep1 = "C\Users\TonNom\TonRepOrigine\"
RepExcel = "C\Users\TonNom\TonRepDestinationExcel\"  'A adapter selon tes répertoires
RepTexte = "C\Users\TonNom\TonRepDestinationTexte\"  'tout pareil
Set Fs = CreateObject("Scripting.FileSystemObject")
Fs.CopyFile Rep1 & "*.xls", RepExcel  'copie les fichiers xls (mef, si c'est xlsx ou xlsm....)
Fs.CopyFile Rep1 & "*.TAR", RepTexte 'copie les fichiers TAR
'supprimer les csv
Fs.DeleteFile Rep1 & "*.csv"
End Sub

Bon courage

Salut,

quand j'execute la maccro , au niveau de set Fs=CreateObject... il m'affiche: erreur de compilation: objet requis.

que puis je faire ?

Re-,

Tu indiques ta version Excel : 2010 (PC ou MAC?)

Dans l'éditeur VBE, lorsque tu cliques sur Outils/Références, quelles références sont cochées?

@ te relire

RE-bonjour

En fait je crois que c'était lié à OptionExplicit, dès que je l'ai supprimé ça marché aussitôt.

Merci beaucoup

Cordialement

Re-,

non, c'est de ma faute....

J'aurai dû déclarer Fs As Object....

Je le fais d'habitude, mais tu as raison, il faut toujours déclarer ses variables....

Bonne journée

Merci

salut

c'est encore moi, j'ai un petit soucis avec la macro d'hier, j'aimerai qu'elle déplace tous les fichiers sauf le fichier source (celui qui contient la macro). Est ce possible?

cordialement

Bonjour,

Pour ce faire, il faudrait passer par une boucle, et ça prendrait sans doute plus de temps...

Ou alors "tromper" Excel en modifiant d'abord l'extension de ton fichier origine, puis en le remettant, bref, que du bidouillage...

Ou alors, mettre le fichier qui contient la macro dans un autre répertoire?

Maintenant, le code ne fait que "Copier", et non "Déplacer", donc en prenant ton plus joli doigt pour cliquer sur la touche "Suppr" après avoir sélectionner ce fichier source dans le répertoire de destination, ça devrait le faire, je pense....

Bonne journée

Bonjour,

quand j'execute la macro tel quel elle bug toujours à la fin en me disant permission refusée. En fait elle copie tous les fichiers puis supprime les anciens sauf le fichier qui contient la macro (ce qui est un peu logique), l'ennui c'est que je vais ajouter cette macro à une une macro et ça serait embêtant que ça bug chaque fois que je vais lancer ma macro.

Voilà pourquoi je voulais savoir comment contourner cette difficulté.

cordialement

Re-,

Je n'ai plus vraiment en tête ce que tu veux exactement...

Copier uniquement vers un autre emplacement, ou déplacer ces-dits fichiers?

Et supprimer les csv?

@ te relire

Re

je reprend: ta macro marche bien (elle copie les fichiers vers les dossiers respectifs et supprime les anciens fichiers), le problème est que quand je lance ta macro elle bug à la fin, elle m'affiche: permission refusée et quand je regarde le dossier source, je constate que les fichiers ont bien été copiés et que les fichiers sources ont été supprimés sauf le fichier qui contient la macro. J'aimerai juste que la macro ne bug pas c'est à dire qu'elle ne m'affiche pas : permission refusée (si c'est possible bien sûr)

Re-,

Tu n'as pas répondu à ma question....

Dans mon code, je supprime uniquement les fichiers csv....

Pourquoi veux-tu que ça buggue, vu que le fichier source est .xlsm?

Donc tu supprimes également les fichiers .xlsm????

Si c'est le cas, on peut utiliser une autre manière...

@ te relire

RE

Heu oui c'est un peu ça, en fait j'ai rajouté une ligne comme la tienne où je lui demande aussi de supprimé les fichiers excels, sauf que quand il le fait, il plante parce qu'il veut aussi supprimer le fichier qui a la macro (qui pourtant est en xlsm)

Re-,

OK (il faut toujours être très précis dans les demandes, sinon des fils comme celui-ci deviennent vite des pelotes.....)

Essaie ce nouveau code (je ne copie plus les fichiers xls vers un autre répertoire, je les déplace, sauf le fichier source)

Sub fava2()
'Copier les fichiers xls et TAR 'Si l'extension est bien en majuscule
Dim Rep1 As String, RepExcel As String, RepTexte As String, Fich As String
Dim Fs As Object
Rep1 = "C\Users\TonNom\TonRepOrigine\"
RepExcel = "C\Users\TonNom\TonRepDestinationExcel\"  'A adapter selon tes répertoires
RepTexte = "C\Users\TonNom\TonRepDestinationTexte\"  'tout pareil
Set Fs = CreateObject("Scripting.FileSystemObject")
Fs.CopyFile Rep1 & "*.TAR", RepTexte 'copie les fichiers TAR
Fich = Dir(Rep1 & "*.xls")
Do While Fich <> ""
    If Fich <> ThisWorkbook.Name Then
        Name Rep1 & Fich As RepExcel & Fich
    End If
    Fich = Dir
Loop
Fs.DeleteFile Rep1 & "*.csv"
End Sub
Rechercher des sujets similaires à "deplacer fichiers dossier"