Rechercher , créer et copier des fichiers dans des répertoires

bonjour,

personne pour m'aider sur mon sujet poste le 10 mai svp ?

j'ai un fichier Excel est dans un répertoire X , au même niveau j'ai des sous répertoire WORD , PDF , DXF , EXCEL etc , une multitude de répertoire dans lesquels sont stockes une multitudes de fichiers , ex :

Dans le répertoire WORD : p57782.word

Dans les répertoire PDF : p57782.pdf

Dans le répertoire DXF : p57782.dxf

Peut importe leurs extensions les fichiers auront toujours le même nom mais pas la même extension. L'idée est d'aller chercher tous les fichiers portant le même nom , dans tous les répertories et de créer un nouveau répertoire au même niveau que WORD , PDF , DXF portant le nom de ST1 ST2

dans notre exemple , j'ai pris la première ligne de mon fichier et je pars sur le nom p57782* , je dois créer uniquement deux répertoire ST5 et ST6 en copiant tous les fichiers portant ce nom dans ST5 et ST6.

je ne dois pas créer a ce stade d'autres répertoires puisque les autres cases ne sont pas cochées.

merci pour votre aide

6prix.xlsx (28.19 Ko)

Hello,

C'était amusant de faire ce petit algo ...

A noter que l'écrasement de fichier n'est pas permis... ( Dans les dossiers ST1,2 ...)

3philb77prix-1.xlsm (38.83 Ko)

Il faut changer le chemin d'enregistrement

bonjour,

je vous remercie je vais tester cela, et je viens de m'apercevoir que j'avais laissé des données confidentielles , honte a moi.

j'ai besoin de récupérer cette macro pour l'essayer dans d'autres fichiers Excel, je fais comment pour intégrer la Macro dans un autre fichier Excel svp??...

merci pour votre aide, je vous dis si cela correspond exactement a ce que je voulais obtenir

cordialement

re,

Au delà de copier le code dans un nouveau fichier Excel ,je vais avoir besoin a minima d'une explication de texte (de code...) , afin de comprendre comment cela fonctionne afin d'adapter éventuellement le code dans un nouveau fichier.

On ne vas pas se mentir je suis entre l'huitre et le bulot cuit...

Vous l'aurez certainement compris les noms ST1 , ST2 , ST3 ne sont pas réellement nommés comme ca, il s'agit en fait de noms totalement différents

et difficilement identifiable par un programme , je veut donc au final ajouter un ST devant chaque nom afin de permettre au programme de scruter la ligne 1 et d'identifier tout ce qui comporte ST_

Exemple : ST1 sera ST_BOUYGUES , ST2 sera en ST_JAGUAR etc etc...

J'imagine que c'est comme ca qu'est prévu le programme ???

Apres j'ai cru comprendre que vous scrutiez la colonne "code article" , est-ce bien cela ?

un petit commentaire sur quelques ligne dans le programme m'aiderai si ce n'est pas trop demander...

merci encore pour votre aide

re,

étrange , la macro a l'air de tourner puisque j'arrive a la fin rapidement , aucun message d'erreur mais il ne m'a crée aucun fichier, par conséquent n'a rien copié non plus...

Hello,

Vous l'aurez certainement compris les noms ST1 , ST2 , ST3 ne sont pas réellement nommés comme ca, il s'agit en fait de noms totalement différents

Non pas du tout, j'en vois des centaines par jour... quand j'ai un tableau devant moi cela doit être la réalité... je me pose pas trop de question sinon je n'en verrai pas le bout ...

Version commentée

3philb77prix-1.xlsm (39.23 Ko)

bonjour,

je comprends aisément , je ne me doutait pas du volume que vous traitiez, encore désolé.

je pense que nous y sommes presque la macro tourne mais le fichiers ne sont pas copiés dans les répertoires crées et je sais pourquoi , je reprécise donc car je ne pense pense pas pouvoir y arriver seul pour l'instant.

les répertoires crées doivent chacun porter le nom ST_NOM1 , ST_NOM2 , ST_NOM3 , sachant que ST_ sera une constante de recherche et que ce qui est derrière NOM1 NOM2 NOM3 sera a chaque fois diffèrent. Les répertoires crées devront avoir le nom complet bien sur.

Apres j'ai un petit soucis sur la copie des fichiers contenu , ex : pour le fichier a rechercher "P57782" , il faudrait mettre des *P57782* comme sur une recherche classique Windows car parfois le numéro ce trouve au milieu d'une autre référence.

Merci pour votre aide précieuse Rag02700

Hello,

Je vois une erreur dans le fichier :

Const Chemin_Racine As String = "C:\Users\boss\Documents\DEV-EXCEL" 'Chemin du dossier principal

a remplacer par :

Const Chemin_Racine As String = "C:\Users\boss\Documents\DEV-EXCEL\" 'Chemin du dossier principal

Pour l'autre demande remplacez :

 If Split(f2.Name, ".")(0) = sCode_Art Then 'Test si le nom du fichier = nom code article

Par :

 If Split(f2.Name, ".")(0) Like "*" & sCode_Art & "*" Then 'Test si le nom du fichier = nom code article

re,

on est encore presque ca , sauf que la création des répertoires n'a pas changé , sinon ca prends vraiment tous les fichiers c'est génial

sauf que les répertoires crées doivent chacun porter le nom ST_NOM1 , ST_NOM2 , ST_NOM3 , sachant que ST_ sera une constante de recherche et que ce qui est derrière NOM1 NOM2 NOM3 sera a chaque fois diffèrent. Les répertoires crées devront avoir le nom complet bien sur.

aujourd'hui ST_JAGUAR demain ST_TOTO après demain ST_TARTALACERISE, etc etc

je pense que c'est au départ avec les variables , non ??...

merci

Je n'ai pas testé mais je pense que c'est ce que tu cherches à faire (du mal à comprendre ce que tu veux)

oui c'est exactement ca, merveilleux , fantastique franchement c'est super sympa ca va m'aider grandement

je te remercie , ca répond a ma demande , je suis content, j'essais d'aider mon équipe a travers de petits développements pour leur faciliter la vie.

Comme je ne sais pas développer et apparemment pas non plus expliquer clairement mes besoins , je te remercie pour ta patience

Maintenant je vais devoir exporter cette macro dans d'autres fichiers Excel , tu sais comment faire ?

j'aurais peut être autre chose a te demander si cela ne te dérange pas trop , avec les commentaires en bout de ligne en plus ca m'aide a interpréter le code.

Je mets en pratique demain et je te dis si ca colle vraiment avec mes données

Champagne !!!!!!!!!!

c'est encore moi , ca commence pas forcement bien ce matin 1er fichier a traiter et il est un peu diffèrent car mon gars a insérer des colonnes avant la colonne O , je reviens donc sur l'indentification des colonnes nécessaires au trie ST_NOM1 , ST_NOM2 , ST_NOM3;

en effet tu commences sauf erreur de ma part arbitrairement par la colonne O pour finir 7 colonnes plus loin cela ne vas pas pouvoir fonctionner car nous insérons

souvent des colonnes avant et après pour des cas particulier, ce qui fait que la colonne O devient R voire U.

Serait il possible plutôt de scruter la ligne 1 , de ne rechercher uniquement que les cases avec un préfixe ST_ , jusqu'à ce qu'il n'y en aient plus et de créer les répertoires avec le nom entier dans cette cellule ?

désolé...

c'est déprimant , je ne comprends pas pourquoi cela ne fonctionne plus, j'ai juste modifié les colonnes a traiter et ajouté des commentaires..

Il ne veut plus créer des répertoires a partir du 2em...????

et pourquoi ce fichu fichier est passé d'un coup a 40 mega alors que j'ai ajouté 4 colonnes vides ??

du coup je t'envoi un pdf , sinon est il possible d'échanger un fichier plus "confidentiellement", j'hésite a mettre un fichier avec des données réelles ???

merci

Col_Type = "F" ' COLONNE TYPE
Col_Comm = "L" ' COLONNE COMMENTAIRE
F_Col_ST = "O" ' PREMIERE COLONNE ST_...
L_Col_ST = "U" ' DERNIERE COLONNE ST_...
Max_St = 7 ' NOMBRE DE COLONNE EN VERT DANS TON PDF
Col_CA = "C" ' Colonne CODE ARTICLE
Row_En_Tete = 1 'Ligne des en-tetes

Voila les variables a changer si ton tableau évolue.

Tu peux mettre 50 colonnes avant si tu veux c'est pas le problème, mais forcement il faut que tu adaptes ces variables ...

La seule contrainte c'est que tu ne dois pas avoir une colonne ST_... puis 50 colonnes après tu as la 2eme colonne ST_...

re,

merci c'est effectivement comme ca que j'ai interprété et commenté également ce que tu as fait.

il n'y pas de colonnes entre les recherche ST_ , je me demande si le fichier que mon gars ma donné n'est pas pourri , il m'a fourni un autre .xls assez lège, j'ai intégré ta macro dedans , sauvegardé en .xlsm et maintenant le fichier fait 136 Meg , c'est un truc de dingue.

Bon je vais me renseigner de mon coté , si j'arrive a faire maigrir le fichier je te l'enverrai.

Merci

bonsoir,

force est de constater que je n'arrive pas a m'en sortir, j'ai récupéré la macro pour l'intégrer dans un autre fichier et cela fonctionne pas. Ta Macro fonctionne bien dans le fichier que tu as fait, mais dès que je veux l'associer a un autre fichier cela ne fonctionne jamais , je pense que je ne suis définitivement pas doué.

Je te joint le fichier dans lequel j'ai intégré la Macro , j'ai respecté les colonnes etc...

merci de me dire si ca vient de l'intégration de la macro dans le nouveau fichier ou d'une erreur que j'ai commise autre part.

cdt

Hello,

Oui c'est normal, dans le fichier que tu m'as envoyé la colonne "TYPE" était pourrie. Il y a avait un filtre sur DET mais à l'affichage c'était vide ...

Du coup je suis parti sur vide. Le traitement se fait sur la colonne TYPE qui doit être vide ainsi que la colonne commentaire ...

Voici une version avec TYPE = DET et commentaire vide

re,

Mouaih , ok case pourrie pourquoi pas mais si les cases sont remplis ca marche plus du coup ?

et puis je relance le truc, du coup il ne prend plus qu'une sorte de fichier et non plus tous les fichiers du même nom mais avec des extensions différentes ...

meme fichier avec des extensions différentes , ex : arbre.doc , arbre.xls , arbre.pdf, ben il prend que le premier ...

Miséricorde :(

Hello,

si les cases sont remplis ca marche plus du coup ?

Bah je ne sais pas c'est à toi de me dire ce que tu veux ... Dans ton premier fichier il y avait un filtre sur la colone type et la colonne commentaire donc j'applique

il ne prend plus qu'une sorte de fichier et non plus tous les fichiers du même nom

Je l'ai indiqué dans mon premier post, l'écrasement n'est pas possible...

solution de contournement (pas testé)

remplacer :

FileCopy Tab_Fichier(x), Chemin_Racine & Tab_St(y) & "\" & sCode_Art  & sExtens  'copie du fichier

par

FileCopy Tab_Fichier(x), Chemin_Racine & Tab_St(y) & "\" & sCode_Art & x & sExtens  'copie du fichier

re,

bon vu mon niveau sur Excel qui a peut près celui d'un bulot cuit je n'avais pas fait attention aux filtres , déjà ca c'est fait.

Sinon je ne comprends pas pourquoi l'un des fichiers que tu m'as fait fonctionne parfaitement , avec copie de tous les fichiers qui portent le même nom mais la même extension et celui la refuse obstinément de marcher.

j'ai changé la ligne et rien ne change c'est a se taper la tète contre le mur, il copie une seule sorte de fichier mais pas tous les autres.

je regarde ca demain plus en détail

Rechercher des sujets similaires à "rechercher creer copier fichiers repertoires"