deplacements de fichiers de dossier à dossier

Y compris Power BI, Power Query et toute autre question en lien avec Excel
n
nanadoudou
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 23 janvier 2014
Version d'Excel : 2010 FR

Message par nanadoudou » 10 février 2014, 08:31

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
n
nanadoudou
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 23 janvier 2014
Version d'Excel : 2010 FR

Message par nanadoudou » 10 février 2014, 10:22

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
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 10 février 2014, 11:10

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.
n
nanadoudou
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 23 janvier 2014
Version d'Excel : 2010 FR

Message par nanadoudou » 10 février 2014, 11:58

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
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 10 février 2014, 12:01

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
n
nanadoudou
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 23 janvier 2014
Version d'Excel : 2010 FR

Message par nanadoudou » 10 février 2014, 12:18

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
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 10 février 2014, 12:20

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
n
nanadoudou
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 23 janvier 2014
Version d'Excel : 2010 FR

Message par nanadoudou » 10 février 2014, 14:26

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 !!!
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 10 février 2014, 15:20

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
n
nanadoudou
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 23 janvier 2014
Version d'Excel : 2010 FR

Message par nanadoudou » 10 février 2014, 16:23

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" ?
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message