Créer une recherche de fichiers

illidan05

XLDnaute Nouveau
Bonjour à tous,

Je vous explique mon problème ^^ :

J'ai un dossier avec plusieurs centaines de fichiers excel qui sont chacuns des notices techniques, chaque fichier porte le nom exact de l'appareil concerné.
Je souhaiterai donc créer un fichier excel à part, qui permet de rechercher une notice en particulier, donc si on entre le nom d'un appareil, ce fichier excel m'affiche la notice correspondante avec un lien pour l'ouvrir.

merci d'avance pour votre aide
a++
 

papapaul

XLDnaute Impliqué
Re : Créer une recherche de fichiers

:rolleyes: Re illidan,

Tu fais Outils, Macros, Visual Basic.
Tu va voir dans le code du Module1 qui commence par :
Private Sub LectureFichiers(ByVal Dossier As String, ByVal InclureSousDossiers As Boolean)

dedans il y a ca

Const FormatNomFichierRch = "[A-Z][A-Z][A-Z]*"
Const NomFeuille As String = "COORDONNEES"

c'est parceque dans mon exemple tous mes noms de fichiers
commencent par au moins 3 majuscules.
Si tes fichiers commence par 1 majuscule :
tu mets seulement 1 fois = "[A-Z]*"

Tous les fichiers ont une feuille "coordonnées"
pour que le doubleclick renvoie bien dans cette feuille
de chaque fichier choisi.
L'idéal est que dans chacun de tes fichiers il y est
1 feuille nommée par exemple "Référence" ou autre chose
et tu modifie en fonction.

Précision ( ne tient pas compte du module2,
j'ai oublié de l'enlever, ca concerne une autre version)

Bon courage.;)
 

illidan05

XLDnaute Nouveau
Re : Créer une recherche de fichiers

re salut ^^,

j'ai essayé de modifier mais ça ne fonctionne pas, mes fichiers n'ont pas de majuscules, il y a des minucules et des chiffres.
Mon dossier racine est C:\Appareillage\

Pouvez-vous m'aider pour la modification du codes à réaliser svp ?

meric pour votre aide
 

papapaul

XLDnaute Impliqué
Re : Créer une recherche de fichiers

:rolleyes: Re illidan
Quel est le 1er caractere de tes fichiers ???
Si c'est un alpha minuscule tu mets [a-z]*
Si c'est du numérique essaye [0-9]*
Je dis ca au pif.
Donne nous un exemple, ce serait plus facile.
Noublie pas non-plus que dans chacun des fichiers,
la feuille que tu veux "rejoindre" doit avoir le même nom.


@+:rolleyes:
 

illidan05

XLDnaute Nouveau
Re : Créer une recherche de fichiers

par exemple j'ai des fichiers qui se nomment exactement :

"bs1 mot1 rcm.xls"
"bs2 mot3 rcm.xls"
"bs5 mot2 rcm.xls"
etc...

Le tout se trouve dans le dossier C:/Appareillage/

J'ai renommé l'onglet de chaque fichier avec le même nom(pour le fichier bs1 mot1 rcm.xls, l'onglet se nomme bs1 mot1 rcm).

merci pour ton aide
 

papapaul

XLDnaute Impliqué
Re : Créer une recherche de fichiers

:eek: Re illidan,
J'ai du dire des bêtises ou pas bien expliqué.

Copie mon fichier recherche dans le même dossier ou sont tes fichiers.
Ouvre le et fait Mise à Jour, tes fichiers et les chemins devraient apparaître en colonne A et B.
Si tes fichiers commencent tous par bsr en minuscule
remplace ce code
Const FormatNomFichierRch = "[A-Z][A-Z][A-Z]*"
par
Const FormatNomFichierRch = "[a-z][a-z][a-z]*"

Pour le retour dans les feuilles avec le dblclick
le code ci-dessous demande de trouver la feuille
"coordonnées" du fichier que tu cliques.
Const NomFeuille As String = "COORDONNEES"
Il faut donc que dans chaque fichier elles aient le même nom.

En supposant que tu veuilles conserver tes noms de feuilles
comme le nom de tes fichiers donc différentes : bsr xxx xxx...
Si tes fichiers sont à feuille unique tu peux remplacer
"COORDONNEES" par sheets(1)
en vba : 1 est la première feuille à gauche.

Sinon dans chaque fichier mets toutes les feuilles
qui t'intéresse à gauche.

Ou alors essaye de nous joindre un petit
repertoire exemple sinon faudra
un vrai pro pour expliquer mieux que moi

Patience, tu va y arriver
 

illidan05

XLDnaute Nouveau
Re : Créer une recherche de fichiers

voilà maintenant il trouve dans la recherche ^^ par contre quand je clique sur la recherche pour afficher le fichier excel, je reçois un message d'erreur:

"
Erreur d'exécution '1004':

La méthode 'Range' de l'objet '_Global' a échoué
"

Pour info j'utilise office 2007

merci encore pour ton aide
 

papapaul

XLDnaute Impliqué
Re : Créer une recherche de fichiers

Re, illidan :D

Dans cette version, c'est mon code de la listbox qui ne va pas.
C'est bqtr qui m'avais sauvé.
Au passage, je n'ai rien inventé du tout ;
je dois tout au Forum :) et aux pros qui veulent bien nous aider.
(Un peu de travail perso quand même:rolleyes:)


Si la mise à jour fonctionne bien pour afficher le nom
de tes fichiers :
alors remplace le code rouge par le bleu :
le doubleclick devrait fonctionner.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Range(ListBox1.Column(1)).Activate
Unload Me
End Sub


Workbooks.Open FileName:=ListBox1.Column(0) & ListBox1.Column(1)

@+
 

jp14

XLDnaute Barbatruc
Re : Créer une recherche de fichiers

Bonjour le fil

Ci joint un fichier avec une macro qui récupère le nom des fichiers excel et affiche le nom ainsi que le nom des différents onglets.
En cliquant sur le nom dans la colonne A on ouvre le fichier correspondant.


A tester

JP
 

Pièces jointes

  • lister fichiersv2.zip
    26.7 KB · Affichages: 42

bqtr

XLDnaute Accro
Re : Créer une recherche de fichiers

Bonsoir illidan05, papapaul, jp14

Un autre exemple avec la création d'un lien hypertexte vers le fichier.

Code:
Sub list_Fichier()
  
  Dim I As Integer, Chemin As String, Fichier As String
  Chemin = "C:\Appareillage\"
  Fichier = Dir(Chemin)
  I = 1
  Application.ScreenUpdating = False
    Range("A2:B" & Range("A65536").End(xlUp).Row + 1).Clear
      Do While Fichier <> ""
         I = I + 1
         Cells(I, 1) = Chemin & Fichier
         Cells(I, 1).EntireColumn.AutoFit
         ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(I, 2), Address:=Chemin & Fichier, TextToDisplay:=Fichier
         Cells(I, 2).EntireColumn.AutoFit
         Fichier = Dir()
      Loop
  Application.ScreenUpdating = True
 
End Sub

Bonne soirée
 

Pièces jointes

  • Recherche fichier.zip
    9.3 KB · Affichages: 41

Discussions similaires

Réponses
6
Affichages
374