Recherche de fichier, copie à l'aide d'une liste - VB/VBA/VBS - Programmation
Marsh Posté le 21-02-2008 à 10:21:47
merci de ta réponse, j'étais parti sur du vbs mais pourquoi pas en batch dos si c'est plus simple, je parle de .doc car les fichiers recherchés sont en .doc
Marsh Posté le 21-02-2008 à 10:31:10
Non non, VBS c'est mieux au contraire, c'est juste que dans shell/batch ça peut être plein de choses différentes, c'est mieux de préciser. ![[:romf] [:romf]](https://forum-images.hardware.fr/images/perso/romf.gif)
Je t'ai rangé ton sujet dans la bonne catégorie, tu auras plus de chances de recevoir une réponse comme ça.
Marsh Posté le 21-02-2008 à 10:44:06
Ton problème peut être décomposé en sous-problèmes 
1/ lecture d'un fichier texte pour les id 
2/ recherche récursive de fichiers dans des dossiers 
3/ copier les fichiers identifiés 
 
Je pense que tous ces aspects là ont déjà été abordés de nombreuses fois sur ce forum. 
Marsh Posté le 21-02-2008 à 10:46:32
Oui, merci j'avais déjà identifié ces points là.. 
 
Je ne m'en sort tout de même pas.
Marsh Posté le 21-02-2008 à 11:29:01
j'acance un peu.. 
 
racine= "C:\Documents and Settings\administrateur.MANUSCRIT\Bureau\Fonction routage" 
Set FSO = WScript.CreateObject("Scripting.FileSystemObject" ) 
Set Afolder=FSO.GetFolder(racine) 
copie(Afolder) 
 
function copie(rep) 
Set TheFiles = rep.Files 
For Each AFile In TheFiles 
 If UCase(FSO.GetExtensionName(AFile.Path)) = "DOC" then  
 	AFile.Copy "C:\Documents and Settings\administrateur.MANUSCRIT\Bureau\Fonction routage\test" , true 
 next 
 for each subFolder in rep.SubFolders 
 	copie (subFolder) 
11.	next 
end function  
 
mais j'ai une erreur ligne 11 Next non attendu .
Marsh Posté le 21-02-2008 à 11:58:35
racine= "C:\Documents and Settings\administrateur.MANUSCRIT\Bureau\Fonction routage" 
Set FSO = WScript.CreateObject("Scripting.FileSystemObject" ) 
Set Afolder=FSO.GetFolder(racine) 
copie(Afolder) 
 
function copie(rep) 
Set TheFiles = rep.Files 
 For Each AFile In TheFiles 
 	If UCase(FSO.GetExtensionName(AFile.Path)) = "DOC" then  
   AFile.Copy "C:\Documents and Settings\administrateur.MANUSCRIT\Bureau\Fonction routage\test" , true 
 	End if 
 	For Each subFolder In rep.SubFolders 
   copie(subFolder) 
 	Next **** 
end function  
 
 
voila, mais je ne sais pas quoi mettre a la place des étoiles, il attend un argument..
Marsh Posté le 21-02-2008 à 12:08:21
yes bien vu l'aveugle 
 !! 
 
mais ca ne copie rien :s avec AFile.Delete ca supprimer correctement mais la copy non..
Marsh Posté le 21-02-2008 à 12:26:31
voici le code :  
 
racine= "C:\Documents and Settings\administrateur.MANUSCRIT\Bureau\Fonction routage" 
Set FSO = WScript.CreateObject("Scripting.FileSystemObject" ) 
Set Afolder=FSO.GetFolder(racine) 
copie(Afolder) 
 
function copie(rep) 
Set TheFiles = rep.Files 
 For Each AFile In TheFiles 
 	If UCase(FSO.GetExtensionName(AFile.Path)) = "DOC" then  
   AFile.Copy "C:\Documents and Settings\administrateur.MANUSCRIT\Bureau\Fonction routage\test"  
 	End if 
 	For Each subFolder In rep.SubFolders 
   copie(subFolder) 
 	Next 
 Next  
End function  
 
la copie de fichier .doc ne s'effectue pas :s
Marsh Posté le 21-02-2008 à 12:30:19
Afin d'avoir une meilleur lisibilité de tes posts, il serait judicieux que tu encadre ton code des balises [ code=vb ] et [ /code ] (en enlevant tous les espaces)
Marsh Posté le 21-02-2008 à 12:57:12
je remet le code avec les bonne balise :$ 
 
Code :
  | 
Marsh Posté le 21-02-2008 à 13:04:34
Copy ? Je connais CopyFile qui s'utilise de la manière suivante :
object.CopyFile source, destination[, overwrite]  | 
Edit : l'objet est le FSO naturellement.Par exemple :
FSO.CopyFile AFile.path "C:\Documents and Settings\administrateur.MANUSCRIT\Bureau\Fonction routage\test"  | 
Marsh Posté le 21-02-2008 à 13:23:02
Les sujets suivont ont étés fusionnés à ce sujet par Elmoricq
Marsh Posté le 21-02-2008 à 13:24:32
stevenhab > Pour modifier l'un de tes sujets, il te faut cliquer sur l'icone 
Essaie de ne pas recréer des topics à chaque fois, depuis ce matin je repasse derrière toi pour faire le ménage...
Si tu te sens perdu avec le forum, n'hésite pas à en consulter l'aide : http://www.mesdiscussions.net/doc/user/html/
Marsh Posté le 21-02-2008 à 14:50:40
merci olivthill pour ta réponse mais je n'arrive pas a appliquer ton 2eme morceau de code.. 
Marsh Posté le 21-02-2008 à 15:00:35
donc je n'y arrive toujours pas, je n'arrive pas a copier mes fichier .doc 
 
Code :
  | 
Marsh Posté le 21-02-2008 à 18:34:21
Voici un peu de doc sur le FileSystemObject 
http://msdn2.microsoft.com/en-us/l [...] S.85).aspx 
.Copy et .CopyFile peuvent être utilisés, mais avec une syntaxe et dans des contextes différents. 
À toi de choisir celui qui te convient.
Marsh Posté le 21-02-2008 à 10:06:52
Bonjour à tous et à toutes !
  
 
J'ai vraiment besoin de votre aide.
Je m'explique, je cherche a écrire un script qui à l'aide d'un liste d'id (dans un fichier .txt , ex : 10456,12588...) va rechercher un fichier .doc contenant cet id, ce fichier existe mais il se trouve dans un dossier parmi 4 autres (ce qui nous fais plusieurs sous dossiers).
L'idée serait de dire, pour chaque id du fichier aller chercher le fichier correspondant et le copier/coller ailleurs.
Il faudrait également lui dire dans quel fichier racine chercher.
Si quelqu'un sait comment faire
voici quelque precision, je ne m'en sort pas, mon patron me met la pression alors que je ne suis qu'un petit stagiaire :s HELP PLEASE !
Voici ma liste d'id, je ne traite que les id > 6000 :
1015
1165
9019
9032
9202
6831
6060
6831
et je cherche dans cette architechture, là commence les pbs :s
├───Txt courants
│ ├───01_MC Originaux
│ │ ├───MC 1000-1999
│ │ │ └───ouvrages_2001-2005
│ │ └───MC 9000-9999
│ │ ├───Mc_9159
│ │ └───MC_9202
│ ├───02_MC En cours
│ └───03_MC Traités
│ ├───MC 2000-2999
│ │ ├───MC_2888
│ │ │ └───archives
│ │ └───MC_2891
│ └───MC 6000-6999
│ ├───MC_6689
│ └───MC_6831
│ └───ouvrage_6831 ancienne version
├───Txt Institutions
│ ├───01_MI Originaux
│ │ └───MI 10000-10999
│ │ └───MI_10789
│ ├───02_MI En cours
│ └───03_MI Traités
│ ├───MI 10001-10099
│ │ ├───MI_10789
│ │ │ └───PDf_divers
│ │ └───MI_10848
│ │ └───Archives
│ └───MI 4000-4999
│ ├───Mi_4445
│ │ └───Couv_4445
│ └───MI_4713
├───Txt ONG-Associations
│ ├───01_MO Originaux
│ │ ├───MO 0-999
│ │ ├───MO 1000-1999
│ │ ├───MO 10000-10999
│ │ │ └───MO_10776
│ │ ├───MO 11000-11999
│ │ ├───MO 2000-2999
│ │ ├───MO 3000-3999
│ │ │ └───ISBN-MU ID
│ │ ├───MO 4000-4999
│ │ ├───MO 5000-5999
│ │ ├───MO 6000-6999
│ │ └───MO 7000-7999
│ ├───02_MO En cours
│ │ ├───MO 0-999
│ │ │ └───MO_ID
│ │ ├───MO 1000-1999
│ │ ├───MO 10000-
│ │ ├───MO 11000-11999
│ │ ├───MO 2000-2999
│ │ ├───MO 3000-3999
│ │ │ └───ISBN-MU ID
│ │ ├───MO 4000-4999
│ │ ├───MO 5000-5999
│ │ ├───MO 6000-6999
│ │ ├───MO 7000-7999
│ │ └───MO 9000-9999
│ └───03_MO Traités
│ ├───MO 10001-10999
│ │ ├───MO_10775
│ │ └───MO_10776
│ └───MO 9000-9999
│ └───MO_9650
│ └───archives
└───Txt Universitaires
├───01_MU Originaux
│ ├───MU 5000-5999
│ └───Mu_7883
├───02_MU En cours
└───03_MU Traités
└───MU 8000-8999
├───MU_8118
└───MU_8298
voici mon code à ce jour :
Merci a vous..
Message édité par stevenhab le 22-02-2008 à 16:42:03
---------------
-- Steven