recherche sur plusieurs dossiers excel

  • Initiateur de la discussion nicolas
  • Date de début
N

nicolas

Guest
Bonjour à toutes et à tous,

Je viens à vous, car j'ai effectué plusieurs recherches sur le net, et malheureusement, je n'ai rien trouvé de convenable.

J'ai également tenté les scripts .vbs, mais ils n'ont pas l'air de fonctionner sur XP.

Voici ma question.

Je cherche un script ou un utilitaires, qui me permettrait d'effectuer sur plusieurs fichiers excel d'un même dossier, une recherche sur un mot clé.

Par exemple, tous les fichiers auraient au sein du fichier même un nom d'animal différent, et moi je rechercherai le fichier ayant la mention " chat ".

Il faudrait que le script ou l'utilitaire me dise dans quel fichier est inscrit le mot "chat".

J'ai bien essayé la commande vbs suivante:

Find/I "C:\Documents and Settings\nikko\Bureau*.xls"
C:\Documents and Settings\nikko\Bureau\resultat.txt

Malheureusement, la comande ne fonctionne pas.

Peut-être est-ce dû au fait que les fichiers soient encryptés ?

En tout cas, j'ai vraiment besoin d'aide sur le sujet.
Je tiens à vous le dire clairement, cette recherche doit me servir pour mon travail, car il me faut souvent effectuer ces recherches qui me prennent plusieurs heures à chaque fois, vu le temps d'ouverture des fichiersexcel ! :-(

Donc, si une personne parmi vous saurait me donner même une bribe d'information et que je doive faire la recherche moi même, je suis prêt à le faire.

Toute aide de votre part sera vraiment la bienvenue.

Par avance merci à celui ou celle, voir à ceux qui me donneront ce coup de pouce.

Nicolas.
 
@

@+Thierry

Guest
Bonjour Nicolas, le Forum

Sans faire une usine à gaz, Windows est prévu pour rechercher une String à l'intérieur des fichiers...

Sous XP Pro => Menu Start (Démarrer) Search (Chercher) Files or Folders (Dossiers ou Répertoires)

Ensuite encore All Files and Folders (Tous les Fichiers etc)
et ensuite More Advanced Options (Options Avancées)

Ensuite encore !! More Advanced Options ... dans la seconde fenêtre (sont fous sous XP lol)

Ensuite "A word or phrase in the file" (un mot ou une phrase dans le fichier)

Tu peux préciser aussi dans quel répertoire démarrer la recherche pour éviter tout le Disque dur... et regardes aussi les autres options...

Sorry je travaille en version US de Windows, donc les traduction sont peut-être différentes.

Sous Win 2000 c'était mille fois plus simple !! lol
BOn Appétit
@+Thierry
 
N

nicolas

Guest
Bonjour Thierry,

Je tiens à te remercier pour l'information, je ne savais pas que Win XP offrait cette possibilité.


Les recherches sont longues et ne donnent pas toujours de résultats ( si bien que je me demande, si tous les fichiers sont là ;o) ayé, je m'emballe )

En tout cas, ca marche et même si c'est très long au niveau de la recherche, je ferais avec, voilà tout !!!

A défaut de mieux.


Encore merci.
 
M

michel

Guest
bonjour Nicolas , bonjour @+Thierry

quand il s'agit de faire des usines à gaz je ne suis pas le dernier ….

La macro ci dessous est à placer dans un classeur qui sera dans le meme repertoires que tous les fichiers sources( chemin à adapter dans la macro )
les fichiers sources doivent etre fermés avant le lancement de la recherche
.Tu lances la macro "chercheDansPlusieursFichiers" , une boite de dialogue s'affiche pour saisir le mot à rechercher , puis tu cliques sur OK .
Un message affiche le resultat de la recherche
tu auras certainement quelques adaptations à faire dans la macro , pour ton projet



Sub chercheDansPlusieursFichiers()
Dim X As Integer, nbFichiers As Integer
Dim Tableau(), Tableau2()
Dim Direction As String, Cible As String
Dim i As Byte, j As Byte, Z As Byte
Dim Val As Object
Dim firstAddress As String, Resultat As String

Direction = Dir("C:\Mes documents\ex\*.xls") 'adapter chemin
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop

If nbFichiers > 0 Then
Cible = InputBox(" Saisir le mot à rechercher : ", "Recherche", "Le mot")

Application.ScreenUpdating = False

For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then

Workbooks.Open Tableau(X)

For i = 1 To Sheets.Count
Sheets(i).Activate
With Sheets(i).UsedRange.Cells
Set Val = .Find(Cible, LookIn:=xlValues)
If Not Val Is Nothing Then
firstAddress = Val.Address
Do
Val.Select
Z = Z + 1
ReDim Preserve Tableau2(2, Z)
Tableau2(0, Z - 1) = "Cellule " & Val.Address
Tableau2(1, Z - 1) = Sheets(i).Name
Tableau2(2, Z - 1) = Tableau(X)
Set Val = .FindNext(After:=ActiveCell)
Loop While Not Val Is Nothing And Val.Address <> firstAddress
End If
End With
Next i

ActiveWorkbook.Close
End If
Next
End If

Application.ScreenUpdating = True

Resultat = "Resultat de la recherche sur le mot : " & Cible & Chr(10) & Chr(10)
If Z = 0 Then
Resultat = Resultat & "Pas de resultat lors de la recherche"
Else
For j = 1 To Z
Resultat = Resultat & Tableau2(0, j - 1) & Chr(9) & Tableau2(1, j - 1) & Chr(9) & Tableau2(2, j - 1) & Chr(10)
Next j
End If
MsgBox Resultat

End Sub




bonne soiree
michel
lapin4.gif
 
N

nicolas

Guest
Tranquillement ? Comme cà ?

" Bonne soirée, Michel " Keep cool.

Ca pour une macro, c'est une macro ! lol

Je teste çà demain au bureau et je te dis ce que ca donne ! ;o)

Merci à toi, développeur et helpeur !!!
 
@

@+Thierry

Guest
Bonsoir Michel, Nicolas, le Forum


Huum Huum Huum, les gens qui me connaissent savent que lorque je commence un post par Humm c'est déjà que çà va pas, alors trois Humm !! lol

Non Michel, Usine à Gaz c'est pas le mot pour ton travail, c'est Usine à Gaz avec un Camion Citerne de Kérosène en déroute dans l'enceinte de l'usine à 80KM/H avec un pneu éclaté et donc le chauffeur et bourré en fumant un havana ou un truc pire (!) lol !!!

J'ai eu le malheur de faire tourner sur mon PC "C:\Mes Documents\XLD\" (contenant environ toutes mes démos d'XLD) et BAHOUM !! même plus de pointeur de souris ni de clavier !! lol (heureusement rien en cours !

Donc j'ai rebooté en me disant que je devais être à bout de mémoire sur ce bon vieux PIII 800 / 512 Ram / 20 Go (11 Go dispos, je viens de tout bien le remettre à plat) et REBOOM !! c'est fois-ci vu qu'il a pas définitivement planté j'ai eu juste à me battre avec un message à répétition de "Low Memory" puis ensuite les messages de fichiers les uns après les autres avec liens, et les autre avec PassWord !! Jusqu'à ce que finalement CTRL ALT SUP Réponde lol

Non Michel une méthode qui consiste à ouvrir tous les WorkBooks n'est pas au top, à moins d'en avoir une 30en max.

Non je pense plus à une méthode ADO que Ti à expérimentée sur ce Forum (faire une recherche) qui serait valable, mais je n'ai jamais eu le temps de m'y mettre sérieusement.

Dans l'attente, je conseille à Nicolas de continuer à utiliser Windows, et si il paramètre bien tout comme il faut (Pointage sur le répertoire où Windows doit chercher, sinon il cherche PARTOUT !!!!, et aussi le type d'extention de fichier "*.xls" ou en définissant par le menu adéquate "Worksheet Excel" (ce qui est conseillé sous XP qui bug un peu (voir mon post sur FileSearch)) çà devrait aller de toute manière plus vite...Et sans danger !

Donc Michel pour moi, pas glop pas glop !! lol Mais bien cherché quand même

Bonne Soirée
@+Thierry[/
 

Discussions similaires

Réponses
3
Affichages
418
Réponses
6
Affichages
375

Statistiques des forums

Discussions
312 502
Messages
2 089 042
Membres
104 010
dernier inscrit
Freba