Trouver fichier via automator

dvd

Membre actif
10 Juin 2004
804
35
Bonjour à tous,

J'ai un document excel qui comporte une liste de 594 nom-prénoms:

Martin Pierre
Joseph Pedro
Marie Curie

etc.

A chaque nom-prénom correspondent des fichiers excel qui a le même type de nommage:
par ex:

"Martin Pierre.xls"
"Joseph Pedro.xls"
"Marie Curie.xls"
etc.

Le hic c'est que je dois retrouver 594 fichiers parmi 3078! Vous me voyez venir, c'est pas pratique de faire 594 fois copier-coller.
Ma demande: existe t-il un logiciel, ou process automator, qui me permette de trouver ces 594 fichiers et ainsi les ouvrir plus facilement?

Merci de votre aide.
 
Processus automator, non, mais une macro dans Excel : fastoche (sauf si tu as Excel 2008, of course) !
 
oula, tu me parles chinois là :(
 
En fouillant dans les menus d'Office 2011, j'ai vu qu'effectivement j'avais un menu "macro". honnêtement je ne sais pas m'en servir. ca ira beaucoup plus vite à les faire à la mains je crois...
 
J'ai pas tout compris sur le but de la manœuvre :confused:
C'est pour récupérer les chemins de ces fichiers et le mettre dans Excel… ?
 
J'ai pas tout compris sur le but de la manœuvre :confused:
C'est pour récupérer les chemins de ces fichiers et le mettre dans Excel… ?

Non, si j'ai bien compris, il s'agirait de mettre à jour ces classeurs à partir de données situées dans le classeur contenant les noms. Rien de compliqué à réaliser, je dirais entre 30 mn et 1 heure de travail pour réaliser la macro, et ensuite quelques minutes pour l'exécuter.
 
peut etre que je me suis mal exprimé. je recommence.

J'ai un document excel qui contient des données de type:
"jean-durand"
"pierre martin"
etc. J'en ai 594 lignes comme ca.

A ces noms correspondent des fichiers excel qui ont la même structure qui se trouvent sur le Mac
"jean durand.xls".
"pierre martin.xls"

etc. J'ai 3078 fichiers comme ca.

Dans ces fichiers il y a diverses information que je souhaite récuperer (il y a des graphique, du texte etc.).

Ce que je veux: via un process excel ou automator, retrouver les fichiers qui correspondent aus noms qui figure dans l'excel:

que "pierre martin" dans l'excel me donne le fichier "pierre martin.xls" sur mon mac
"jean durand" dans l'excel me donne le fichier "jean durand.xls" sur mon mac


La solution fastidieuse serait de copier coller le nom "pierre martin" dans Spotlight qui me donnerait, en théorie, le bon fichier. Le hic c'est qu'il faut le faire 594 fois...

Le process Automator ou Excel me permettrait, dans l'idéal, d'appuyer sur un bouton et d'avoir les bons fichiers correspondants.
C'est plus clair? Merci!
 
peut etre que je me suis mal exprimé. je recommence.
Moi, je comprends relativement bien ce que tu veux dire, mis à part la phrase : "jean durand" dans l'excel me donne le fichier "jean durand.xls" sur mon mac. Il y a la une notion ("donne") qui m'échappe un peu.

Une macro VBA peut te permettre d'ouvrir le fichier correspondant au nom, par contre, si c'est de ça qu'il est question, voire de copier le contenu d'une plage dans un classeur vers un autre classeur Excel, ce genre de choses...
 
Un script associé qui lit le fichier de noms (en mode texte ? en CSV ?) pour retourner le chemin et éventuellement générer un CSV pour qu'il puisse être ouvert dans Excel… ?
 
Un script associé qui lit le fichier de noms (en mode texte ? en CSV ?) pour retourner le chemin et éventuellement générer un CSV pour qu'il puisse être ouvert dans Excel… ?

Oui ce serait ca. Je voudrais automatiser l'action suivante pour mes 594 fichiers:

-je copie le "jean durand" présent dans mon document Excel
-je le colle dans Spotlight
-Spotlight me trouve le fichier "jean durand.xls" (présent sur mon Mac) qui correspond au nom présent dans excel.

Dans l'absolu si j'arrivais automatiser ca pour mes 594 fichiers ce serait 90% du boulot de fait. Car après je pourrais copier mes 594 fichiers dans un dossier spécifique pour plus de facilité.

Mon principal problème est qu'actuellement mes 594 fichiers sont noyés dans un dossier qui comporte 3078 fichiers "nom prenom.xls"

Moi, je comprends relativement bien ce que tu veux dire, mis à part la phrase : "jean durand" dans l'excel me donne le fichier "jean durand.xls" sur mon mac. Il y a la une notion ("donne") qui m'échappe un peu.

Une macro VBA peut te permettre d'ouvrir le fichier correspondant au nom, par contre, si c'est de ça qu'il est question, voire de copier le contenu d'une plage dans un classeur vers un autre classeur Excel, ce genre de choses...

Par "donne", je veux dire "trouve". Voir explication sur Spotlight plus haut.
 
Oui ce serait ca. Je voudrais automatiser l'action suivante pour mes 594 fichiers:

-je copie le "jean durand" présent dans mon document Excel
-je le colle dans Spotlight
-Spotlight me trouve le fichier "jean durand.xls" (présent sur mon Mac) qui correspond au nom présent dans excel.

Dans l'absolu si j'arrivais automatiser ca pour mes 594 fichiers ce serait 90% du boulot de fait. Car après je pourrais copier mes 594 fichiers dans un dossier spécifique pour plus de facilité.

Mon principal problème est qu'actuellement mes 594 fichiers sont noyés dans un dossier qui comporte 3078 fichiers "nom prenom.xls"

Ben si tous tes fichiers sont dans le même dossier, c'est facile !

Tiens, je te mets un exemple fait pour la feuille ci dessous (nommée "Feuil1", et qui qui correspond, dans mon exemple, à celle où il y a tous tes noms de client) :

feuille.jpg


Bloc de code:
[COLOR="navy"]Sub[/COLOR] Macro1()
[COLOR="Green"]'
' Macro1 Macro
'[/COLOR]
[COLOR="Navy"]Dim[/COLOR] compteur [COLOR="navy"]As[/COLOR] Integer
[COLOR="navy"]Dim[/COLOR] classeur [COLOR="navy"]As[/COLOR] String
[COLOR="navy"]Dim[/COLOR] ouvrir [COLOR="navy"]As[/COLOR] String
'
    [COLOR="navy"]For[/COLOR] compteur = 1 [COLOR="navy"]To[/COLOR] Application.WorksheetFunction.CountA(Range("Feuil1!A:A"))
        Range("A" & compteur).Select
        classeur = ActiveCell.Value & ".xls"
        ouvrir = "pascal:Documents:Documents Pascal:Bureautique: " & classeur
        Workbooks.Open Filename:=ouvrir
        [COLOR="Green"]' Ici, tout ce qu'il y a à faire comme copier/coller entre les classeurs
        ' Ensuite, en vérifiant que le classeur actif est bien celui ouvert par la macro[/COLOR]
        Workbooks.Select (classeur)
        ActiveWorkbook.Close
    [COLOR="navy"]Next[/COLOR] compteur
[COLOR="navy"]End Sub[/COLOR]

Bien sur, il faut l'adapter à ton cas précis, mais rien d'insurmontable, et à la place de la première ligne de commentaire (en vert) au milieu de la macro, tu peux ajouter toutes les opérations à faire entre les deux classeurs, afin que tout soit automatisé ! Dans le cas présent, exécuter cette macro telle quelle ne ferait qu'ouvrir, puis refermer tous les classeurs dont les noms figurent dans la feuille.
 
Dernière édition:
Oui, Pascal. Mais DVD ne veut pas que ça ouvre les classeurs, il veut que ça "donne" ou "trouve" les classeurs, concept que je n'ai pas compris. Une recherche ? Une sélection dans la liste ? :D

Ben à la place de la ligne "' Ici, tout ce qu'il y a à faire comme copier/coller entre les classeurs", il colle un "save as" avec le bon chemin, et ça roule.

S'il nous expliquais exactement ce qu'il compte faire de ces fichiers, ça serait plus facile de l'aider !
 
AMHA il veut mettre en regard des noms les chemins des fichiers correspondants…
Oui, mais pour ça, on peut bricoler à partir de la macro de Ron de Bruin "GetFilesOnMacWithOrWithoutSubfolders" pour récupérer tous les noms de fichiers dans un classeur, ensuite c'est un jeu d'enfant de comparer la liste avec une autre, ou d'y ajouter le chemin d'accès (attention toutefois, avec Mountain Lion (et peut-être Lion) il y a un bug lorsque un des éléments du chemin d'accès contient une lettre accentuée, ça renvoie un chemin erroné - dans Snow Leopard, ce n'est pas le cas, en principe : mieux vaut quand même éviter).

Mais bon, comme déjà vu, ça irait mieux si on savait ce qu'il veut faire de ces fichiers. Honnêtement, le problème n'est pas tellement de retrouver ces fichiers (la macro de Pascal ci-dessus est un bon exemple de solution envisageable) mais une fois qu'on les a… :siffle:
 
Merci à tous pour votre aide. J'ai bossé ce week end, et j'ai fait manuellement la recherche de fichiers. Je n'ai pas fini mais j'ai un deadline à respecter... :( De plus, je ne maîtrise absolument pas les macro excel. Ca aurait été peut être plus compliqué de mettre en place cette macro.

Le but principal de ma demande était de repérer les 574 fichiers dont j'aivais besoin, afin de les isoler des 3078 autres. Je les ai copié dans un dossier spécial. Je ne vais pas les traiter directement, ce sera à ma hierarchie de le faire.
 
J'ai trouvé un début de solution, en espérant que ta deadline ne soit pas encore passée (ce dont je me permets de douter :().
Dans ton fichier Excel où il y a tes noms de fichier, utilise la fonction CONCATENER pour organiser les valeurs de tes cellules :
- les unes derrière les autres
- en les séparant par " OR " en veillant bien à mettre un espace de chaque côté du OR
- en leurs mettant des guillemets (puisque tes noms de fichiers semblent avoir des espaces)

la formule devrait ressembler à :
=concatener("""";A1;"""";" OR ";"""";A2;"""";" OR " ...)
en admettant que tes noms de fichiers soient dans les cellules A1, A2 etc ...
Il faut quadrupler les guillemets pour qu'ils soient pris en compte comme du texte (1 seul guillemet)

Comme tu en as 594, je te conseille de passer par une méthode plus rapide.
- mets tes noms de fichiers dans la colonne A, de A1 à A594.
- en B2, insère la formule : =CONCATENER("""";A1;"""";" OR ";"""";A2;"""")
- en B3, insère la formule : =CONCATENER(B2;"""";" OR ";"""";A3;"""")
- tire la formule jusqu'en B594

Tu devrais te retrouver en B594 avec une seule gigantesque cellule ressemblant à :
"Prenom1 Nom1" OR "Prenom2 Nom2" OR "Prenom3 ... Nom593" OR "Prenom594 Nom594"

Copie-colle dans spotlight et restreins à ton dossier où sont tes fichiers.

Après, tu devras le faire en plusieurs fois je pense car le nombre de caractères pour la recherche Spotlight est limité (pour ma part 6012 caractères max.)
 
Dernière édition:
Oui, je reviens ici faire un retour. Tout d'abord merci pour votre aide. Comme tu l'as mentionné, ma deadline est finie. Je me suis fait aider par un collègue et on a fait ca à la main. C'était fastidieux mais on a pu finir le travail. :rateau:

Je te remercie poussin pour ton explication, je la testerai ;)