Deplacements de fichiers de dossier à dossier

Bonjour à tous,

tout les matins j'ai des enregistrements qui arrivent dans un dossier: "F:\Enregistrements_SOPHIA\"....

ce dossier contient un sous dossier nommé sous la forme XX_XX_XXXX

ce sous dossier contient 1 à 2 sous autre dossier dont le nom est soit "Appels_accompagnement"

soit "Appels_de_bienvenue"......... j'ai donc mes fichiers mp3 dans un chemin du style "F:\Enregistrements_SOPHIA\XX_XX_XXXX\Appels_accompagnement\"

je souhaite pouvoir copier et déplacer tous les fichiers mp3 dans un seul répertoire appelé "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

je pensais utiliser une macro du style.... mais je pense que c'est trop simple ....

Sub CopierFichier2()

'Copie le fichier dans un autre dossier:

'syntaxe : FileCopy "source", "destination"

FileCopy "F:\Enregistrements_SOPHIA\""\""\*.mp3", "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

End Sub

En effet, tu fais tout d'abord l'erreur d'uniquement copier. Les fichiers resteront sur le dossier source. Tu dois le copier et le supprimer par la suite.

Tu vas donc devoir boucler sur les fichiers avec un FSO comme expliqué dans ton article précédent, récupérer le path de chacun des fichiers mp3 puis les copier à l'endroit voulu. Pour après killer le fichier.

Re,

ok.... bon si je reprends cette formule..... je devrai avoir un code du style ci dessous.... non?

mais que mettre sur les lignes en couleur rouge?

et est ce qu'il va bien lire dans tous les sous dossiers avec la ligne Bleue?

Sub Macro10()

'

DeplacerFichiersEtape1"F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

End Sub

Sub DeplacerFichiersEtape1(DosDestination As String)

Dim Fso As Object

Dim Dossier As Object

Dim Fichier As Object

Dim NouvDos As Object

'crée l'objet

Set Fso = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin

If Fso.FolderExists(DosDestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers

Set Dossier = Fso.GetFolder("F:\Enregistrements_SOPHIA\")'parcour la collection de fichiers du dossier en cours

For Each Fichier In Dossier.Files

'si le dossier portant le nom du fichier existe, le fichier est déplacé dans ce dossier

'sinon, le dossier est créé et le fichier est ensuite placé dedans

If Fso.FolderExists(....)= True Then

Fso.MoveFile Fichier, (....°End If

Next Fichier

End Sub

For Each Fichier In Dossier.Files

filecopy(fichier.path,fichierdestination)

kill fichier.path

next

je vais essayer ça....

Sub Macro10()

'

DeplacerFichiersEtape1"F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

End Sub

Sub DeplacerFichiersEtape1(DosDestination As String)

Dim Fso As Object

Dim Dossier As Object

Dim Fichier As Object

Dim NouvDos As Object

'crée l'objet

Set Fso = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin

If Fso.FolderExists(DosDestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers

Set Dossier = Fso.GetFolder("F:\Enregistrements_SOPHIA\")'parcour la collection de fichiers du dossier en cours

For Each Fichier In Dossier.Files

'si le dossier portant le nom du fichier existe, le fichier est déplacé dans ce dossier

'sinon, le dossier est créé et le fichier est ensuite placé dedans

For Each Fichier In Dossier.Files

filecopy(fichier.path,fichierdestination)

kill fichier.path

next

End Sub


re,

nan, ça marche pas

il me met la ligne en rouge.....

je dois pas spécifier Fichier .patch et fichier.destination?

ça m'énerve.... de bloquer sur un truc qui est je pense tout simple !!

Sub DeplacerFichiersEtape1(DosDestination As String)

Dim Fso As Object

Dim Dossier As Object

Dim Fichier As Object

Dim NouvDos As Object

'crée l'objet

Set Fso = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin

If Fso.FolderExists(DosDestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers

Set Dossier = Fso.GetFolder("F:\Enregistrements_SOPHIA\") 'parcour la collection de fichiers du dossier en cours

For Each Fichier In Dossier.Files

Filecopy(fichier.path,Fichierdestination)

Kill Fichier.Path

Next

End Sub

mdr... Et le fichier destination quoi ?

oups je dois pas tout comprendre là....

je m'embrouille un peu à force....

je le spécifie pas là mon dossier destination? (code ci dessous)

Sub Macro10()

'

DeplacerFichiersEtape1 "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

End Sub

Filecopy(fichier.path,Dosdestination)

bon avec ça au complet, il me met la ligne en rouge et me surligne en jaune en suivant ....

je vais craquer là !!! lol

Sub Macro10()

'

DeplacerFichiersEtape1 "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

End Sub

Sub DeplacerFichiersEtape1(DosDestination As String)

Dim Fso As Object

Dim Dossier As Object

Dim Fichier As Object

Dim NouvDos As Object

'crée l'objet

Set Fso = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin

If Fso.FolderExists(DosDestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers

Set Dossier = Fso.GetFolder("F:\Enregistrements_SOPHIA\") 'parcour la collection de fichiers du dossier en cours

For Each Fichier In Dossier.Files

Filecopy(fichier.path,Dosdestination)Kill Fichier.Path

Next

Bon tu n'es pas foutu d'avoir un minimum de bon sens et de capacité de réflexion ?

est ce que tu copies le fichier dans un dossier ou dans un fichier ? ton dosdestination a besoin du nom du file.

Je ne t'aide plus. Bonne chance.

bonjour,

il est tres facile de critiquer quand on pratique le vba "couramment" .... pour ma part je suis novice et pas du tout formé à ça.... je fais donc ce que je peux et essaye de comprendre comme je peux..... je te remercie pour le "bon sens"..... en attendant, sans connaissance j'arrive à bidouiller quelques macros qui marchent....

il me semblait qu'il etait proné sur ce foruim la courtoisie.... heureusement certains sont plus comprehensif.... mais tu as raison , je vais me debrouiller.... et encore mille excuses pour mon ignorance !

bonne journée

bon, j'essaye de continuer (seul).....

voilà un code qui fonctionne si mes fichiers mp3 sont dans "F:\Enregistrements_SOPHIA\..... or ils sont dans des sous repertoires.... un sous repertoire (nommé XX_XX_XXXX) et des sous-sous repertoires nommés ("Appels_Accompagnements" et "Appels_Bienvenue")..... comment spécifier dans la ligne repertoire 1=.... ce chemin complet, surtout quand les noms de sous repertoires changent ????

Sub essai2()

repertoire1 = "F:\Enregistrements_SOPHIA\"

repertoire2 = "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

nf = Dir(repertoire1 & "*.*")

Do While nf <> ""

Name repertoire1 & nf As repertoire2 & nf

nf = Dir

Loop

End Sub

Je t'ai déjà fait ta macro l'autre fois. Maintenant il suffit de l'adapter à ton cas. Ma courtoisie n'est pas à remettre en question surtout quand je t'ai aidé suffisamment pour que tu puisses t'en sortir. Je veux bien t'aider mais pas faire ton travail. Si tu n'as pas envie de creuser et tu reviens vers de commandes DOS alors que tu as vu que le FSO est bien plus puissant très bien. Bon courage pour le faire!

Bonne journée.

merci de ta réponse, je ne veux surtout pas qu'on fasse le boulot à ma place, je veux juste comprendre....

ci dessous je spécifie mes noms de dossiers et nouveau dossier

suis je sur le bon chemin?

Sub DeplacerFichiersEtape1()

Dim FSO As Object

Dim Dossier As Object

Dim Fichier As Object

Dim Nouvdos As Object

Dossier = "F:\Enregistrements_SOPHIA\"

Nouvdos = "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

'crée l'objet

Set FSO = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin

If FSO.FolderExists(Dosdestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers

Set Dossier = FSO.getfolder("F:\Enregistrements_SOPHIA\") 'parcour la collection de fichiers du dossier en cours

For Each Fichier In Dossier.Files

Filecopy(fichier.path,Nouvdos)

Kill Fichier.Path

Next

End Sub

A part ça , oui.

Sub DeplacerFichiersEtape1()

Dim FSO As Object
Dim Dossier As Object
Dim Fichier As Object
Dim Nouvdos As Object

Dossier = "F:\Enregistrements_SOPHIA\"
Nouvdos = "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

'crée l'objet
Set FSO = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin
If FSO.FolderExists(Dosdestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers
Set Dossier2 = FSO.getfolder(Dossier) 'parcour la collection de fichiers du dossier en cours
For Each Fichier In Dossier2.Files
Filecopy(fichier.path,Nouvdos)
Kill Fichier.Path
Next

End Sub

Pas vu que la variable Dosdestination n'éxistait pas....

Du coup ça exit le sub directement

bon la variable c'est ce que j'ai rajouté en haut c'est ça.... le sub macro10()... non?

et je dois enlever les lignes des chemins de dossiers?

je suis vraiment désolé engue mais je comprends pas la manip.... à moins que mon erreur vienne de cette variable...

Sub Macro10()

'

DeplacerFichiersEtape1 "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

End Sub

Sub DeplacerFichiersEtape1()

Dim FSO As Object

Dim Dossier As Object

Dim Fichier As Object

Dim Nouvdos As Object

Dossier = "F:\Enregistrements_SOPHIA\"

Nouvdos = "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

'crée l'objet

Set FSO = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin

If FSO.FolderExists(Dosdestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers

Set Dossier2 = FSO.getfolder(Dossier) 'parcour la collection de fichiers du dossier en cours

For Each Fichier In Dossier2.Files

Filecopy(fichier.path,Nouvdos)

Kill Fichier.Path

Next

End Sub

Si tu donnes un argument à ton sub il faut le déclarer.


Sub DeplacerFichiersEtape1(dosdestination as string)

Dim FSO As Object
Dim Dossier As Object
Dim Fichier As Object
Dim Nouvdos As Object

Dossier = "F:\Enregistrements_SOPHIA\"
Nouvdos = "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

'crée l'objet
Set FSO = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin
If FSO.FolderExists(Dosdestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers
Set Dossier2 = FSO.getfolder(Dossier) 'parcour la collection de fichiers du dossier en cours
For Each Fichier In Dossier2.Files
Filecopy(fichier.path,Nouvdos)
Kill Fichier.Path
Next

End Sub

ok pour ça j'ai compris.....

sur la ligne Filecopy(fichier.path,Nouvdos)

il me dit qu'il attend un argument du type "="

donc il ne me reconnait pas les lignes en rouge où je spécifie le chemin je pense....

je cherche..... à force je vais y arriver .....

merci engueengue de ta patience !!!

Sub Macro10()
'
DeplacerFichiersEtape1 "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

End Sub
Sub DeplacerFichiersEtape1(dosdestination as string)

Dim FSO As Object
Dim Dossier As Object
Dim Fichier As Object
Dim Nouvdos As Object

Dossier = "F:\Enregistrements_SOPHIA\"

'crée l'objet
Set FSO = CreateObject("Scripting.FileSystemObject")

'si le dossier cible n'existe pas, fin
If FSO.FolderExists(Dosdestination) = False Then Exit Sub

'défini le dossier où effectuer la recherche des fichiers et la création des dossiers
Set Dossier2 = FSO.getfolder(Dossier) 'parcour la collection de fichiers du dossier en cours
For Each Fichier In Dossier2.Files
Filecopy(fichier.path,dosdestination & fichier.name)
Kill Fichier.Path
Next

End Sub

quand je te dis que je vais devenir dingue!!!!

ok apres avoir copié le code ....

quand je lance ma macro il m'ouvre le code

marque "erreur de compilation: erreur de syntaxe"

met la ligne filecopy en rouge et la ligne Sub en jaune .

pourquoi rajouter : & fichier.name ?

est ça qui bloque?


im me manque pas un "end if" ?

Rechercher des sujets similaires à "deplacements fichiers dossier"