Microsoft 365 Recherche dans fichier excel dans un répertoire

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Loulou27

XLDnaute Nouveau
Bonjour,

Je voulais rechercher des choses dans des fichiers excel dans 1 répertoire mais je me rends compte que avec la fonction "Recherche" de l'explorateur, je n'ai apparemment pas ce qu'il faut comme résultat (manque des fichiers ou pas les bons)

Je pense le faire en ouvrant les fichiers excel 1 à 1 mais va prendre un temps fou je pense car j'ai plus de 6500 fichiers / mois

Avez-vous une solution simple (peut-être paramètrages windows .... autre que en passant par excel) ?

Il faut que je cherche une référence telle que ce format XX XX XX puis dans tous ces fichiers, une seconde référence en XX XX XX XX XX


De plus, les fichiers sont en xlsx donc faut -il les renommer en xls o =u cela ne sert à rien ?


N.B :
j'ai essayé avec cette fonction
FINDSTR /M /C:"*XX XX XX*" *.*

mais cela ne marche pas du tout


Merci pour votre aide
 
Dernière édition:
Bonjour le forum,

Je me suis décidé à créer 6500 fichiers .xlsx, voyez le dossier zippé sur TransferNow :

https://www.transfernow.net/dl/2025090815NPRohY

Contrairement à ce que je disais au post #11 le traitement VBA se fait chez moi en 98 secondes.

A+

Bonjour,

Merci pour tout, après modification de la macro pour adaptation à ce que je souhaite, cela semble fonctionner.

Pour le moment, je récupère les fichiers sur mon PC car ils sont sur un serveur mais il y en a beaucoup trop (380 000 !!!)

Je suis entrain de copier 86 000 fichier quand même depuis début de l'année

Ensuite, il faut que je lance la macro mais je pense demain car la copie est assez longue


N.B : j'ai modifié pour que pour un même fichier, il y a le critère 1 et 2 sur la même ligne car sinon, ils étaient sur 2 lignes
 
Bonjour Loulou27, le forum,
N.B : j'ai modifié pour que pour un même fichier, il y a le critère 1 et 2 sur la même ligne car sinon, ils étaient sur 2 lignes
Ce n'est pas vraiment évident, j'ai modifié le code :
VB:
Const feuil$ = "MaFeuille"
Const col1% = 3 'colonne C
Const col2% = 7 'colonne G
Const crit1$ = "?? ?? ??"
Const crit2$ = "?? ?? ?? ?? ??"
Dim fichier$, a(4) 'tableau en base 0

Sub Recherche()
Dim chemin$, lig&, form$
chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin & "*.xlsx") '1er fichier du dossier
lig = 3
Application.ScreenUpdating = False
Rows(lig + 1 & ":" & Rows.Count).Delete 'RAZ
While fichier <> ""
    form = "'" & chemin & "[" & fichier & "]" & feuil & "'!"
    Erase a
    Formule form, col1, crit1
    Formule form, col2, crit2
    If a(0) <> "" Then lig = lig + 1: Cells(lig, 1).Resize(, 5) = a
    fichier = Dir 'fichier suivant
Wend
Range("A4:E" & lig).Borders.Weight = xlThin
End Sub

Sub Formule(form$, col%, crit$)
Dim f$, v
f = "MATCH(""" & crit & """," & form & "C" & col & ",0)"
v = ExecuteExcel4Macro(f)
If IsNumeric(v) Then
    a(0) = fichier
    a(IIf(crit = crit1, 1, 3)) = v
    a(IIf(crit = crit1, 2, 4)) = ExecuteExcel4Macro(form & "R" & v & "C" & col)
End If
End Sub
J'ai exécuté la macro avec 6500 fichiers, elle s'exécute en 86 secondes chez moi.

A+
 

Pièces jointes

Bonjour,

J'ai modifié la macro en fonction d'un nouveau besoin. Cela fonctionne mais au bout d'un moment, j'ai un message d'erreur par rapport à de la mémoire (ou nb de fichier trop grand) en précisant que je peux passer sous 365 - 64 bits mais je pense que j'y suis déjà

Comment je peux éviter cela ?

Est-ce que les fichiers dans lesquels la recherche se fait sont ouverts et pas fermé, ce qui provoque ça quand il y a trop de fichiers ?

Faut-il que je découpe la totalité de mes fichiers en plusieurs fois => nb maxi par répertoire ?

J'ai environ 11500 fichiers et doit faire la même chose avec 46000 fichiers !!!

Merci
 
Dernière édition:
Bonjour le forum,

Avec la solution que j'ai donnée les fichiers .xlsx ne sont jamais ouverts.

Tout ce que je peux vous dire c'est qu'avec 6500 fichiers il n'y a pas de message d'erreur mais ça prend déjà beaucoup de temps.

A+

C'est bien ce que je pensais par rapport aux fichiers

Je viens de relancer une recherche là pour voir ce que ça donne et si toujours pareil, je fais des sous-répertoires avec 6000 fichiers car cela plante toujours vers les 6600 ou plus

Après, c'est le fait que le fichier se remplisse qui prend de la mémoire mais toutes les cases ne sont pas remplies ni toutes les lignes donc c'est bizarre
 
Bonjour,
Avec adodb, attention il faut activer l'indexation des fichiers dans Windows
Code:
Function RechercherFichierIndexedSimplifie(motif As String, dossier As String) As Collection
    On Error GoTo Erreur
  
    If Right(dossier, 1) <> "\" Then dossier = dossier & "\"
    Set RechercherFichierIndexedSimplifie = New Collection
  
    With CreateObject("ADODB.Connection")
        .Open "Provider=Search.CollatorDSO;Extended Properties='Application=Windows';"
        With .Execute("SELECT System.ItemPathDisplay FROM SYSTEMINDEX " & _
                      "WHERE scope='file:" & Replace(dossier, "'", "''") & "' " & _
                      "AND System.FileName LIKE '" & Replace(Replace(motif, "*", "%"), "'", "''") & "'")
            Do Until .EOF
                RechercherFichierIndexedSimplifie.Add .Fields(0).Value
                .MoveNext
            Loop
            .Close
        End With
        .Close
    End With
    Exit Function

Erreur:
    MsgBox "Erreur : " & Err.Description, vbCritical, "Recherche indexée"
    Set RechercherFichierIndexedSimplifie = Nothing
End Function
Exemple d'utilisation
Code:
Sub TestRechercheSimple()
    Dim f As Variant
    For Each f In RechercherFichierIndexedSimplifie("Toto*122.*", "C:\Users\dysorthographie\Documents")
        Debug.Print f
    Next f
End Sub
Retour tous les fichiers excel contenant le texte budget 2025
Code:
SELECT System.ItemPathDisplay 
FROM SYSTEMINDEX 
WHERE CONTAINS('"budget 2025"') 
AND System.Kind = 'document' 
AND System.FileExtension = '.xlsx'
 
Dernière édition:
Bonjour,
[Ne présume en rien d'une solution de ma part]
Depuis le début, tu parles de recherche selon deux références, dans un onglet spécifique, et des colonnes connues...
Cependant, malgré la demande de @job75 dans ce post, auquel tu n'as pas répondu, on ne sait toujours pas le nom de l'onglet, ni des colonnes à scanner...
Est-ce que les données à rechercher sont dans un Tableau Structuré? (si oui, quels titres de colonnes?)
De plus, un format "XX XX XX", ou "XX XX XX XX", est-ce du numérique, alphanumérique ou alphabétique?
Selon tes réponses, on pourrait envisager une autre méthode. (sans garantie, aucune...)
Bon courage
 
Dernière édition:
Bonjour,
[Ne présume en rien d'une solution de ma part]
Depuis le début, tu parles de recherche selon deux références, dans un onglet spécifique, et des colonnes connues...
Cependant, malgré la demande de @job75 dans ce post, auquel tu n'as pas répondu, on ne sait toujours pas le nom de l'onglet, ni des colonnes à scanner...
Est-ce que les données à rechercher sont dans un Tableau Structuré? (si oui, quels titres de colonnes?)
De plus, un format "XX XX XX", ou "XX XX XX XX", est-ce du numérique, alphanumérique ou alphabétique?
Selon tes réponses, on pourrait envisager une autre méthode. (sans garantie, aucune...)
Bon courage

Bonjour,

"Depuis le début, tu parles de recherche selon deux références, dans un onglet spécifique, et des colonnes connues...
Cependant, malgré la demande de @job75 dans ce post, auquel tu n'as pas répondu, on ne sait toujours pas le nom de l'onglet, ni des colonnes à scanner...

Cela évolue et a évolué depuis donc la nouvelle demande porte sur une recherche de 3 critères dans 1 même onglet et d'un autre dans un autre onglet


Est-ce que les données à rechercher sont dans un Tableau Structuré? (si oui, quels titres de colonnes?)

Pas forcément => j'ai juste le nom des onglets pour être plus ouverts à différents formats de fichier excel


De plus, un format "XX XX XX", ou "XX XX XX XX", est-ce du numérique, alphanumérique ou alphabétique?
Il peut y avoir de tout
"

En PJ

Mon excel est un 32bits => mon système est bien un 64 bits

Voici le message d'erreur et une vue de ce donne la recherche


Je n'ai pas encore intégré le truc d'indexation => je vais voir comment faire ça
 

Pièces jointes

  • Capture d'écran 2025-10-07 113400.png
    Capture d'écran 2025-10-07 113400.png
    5.3 KB · Affichages: 6
  • Capture d'écran 2025-10-07 112548.png
    Capture d'écran 2025-10-07 112548.png
    179.9 KB · Affichages: 6
Claude.IA à dit:
Indexer les fichiers dans Windows
Windows dispose d'un service d'indexation intégré qui accélère la recherche de fichiers. Voici comment le configurer :
Accéder aux options d'indexation
Ouvrez les Paramètres Windows (touche Windows + I)
Allez dans Confidentialité et sécurité > Recherche dans Windows
OU
Tapez "Options d'indexation" dans la barre de recherche Windows
Configurer l'indexation
Ajouter des emplacements à indexer
Dans la fenêtre Options d'indexation, cliquez sur Modifier
Cochez les dossiers que vous souhaitez indexer :
Bibliothèques (Documents, Images, Musique, Vidéos)
Dossiers personnalisés
Disques entiers (attention, cela peut ralentir l'indexation)
Cliquez sur OK
Paramètres avancés
Cliquez sur Avancé pour accéder à plus d'options :
Types de fichiers : Choisissez quels formats de fichiers indexer et si vous voulez indexer uniquement les propriétés ou aussi le contenu
Emplacement de l'index : Changez où l'index est stocké si nécessaire
Reconstruire l'index : Utilisez cette option si la recherche ne fonctionne pas correctement
Résoudre les problèmes
Si l'indexation ne fonctionne pas :
Dans les options avancées, cliquez sur Reconstruire
Vérifiez que le service "Windows Search" est en cours d'exécution :
Tapez services.msc dans la recherche
Cherchez "Windows Search"
Assurez-vous qu'il est démarré et en mode automatique
Conseils pratiques
L'indexation initiale peut prendre plusieurs heures selon la quantité de fichiers
N'indexez pas tout votre disque dur, concentrez-vous sur vos dossiers de travail
L'indexation se fait en arrière-plan et utilise peu de ressources
L'indexation améliore considérablement la vitesse de recherche dans l'explorateur de fichiers et le menu Démarrer !
 
Bonjour,
Avec adodb, attention il faut activer l'indexation des fichiers dans Windows
Code:
Function RechercherFichierIndexedSimplifie(motif As String, dossier As String) As Collection
    On Error GoTo Erreur
 
    If Right(dossier, 1) <> "\" Then dossier = dossier & "\"
    Set RechercherFichierIndexedSimplifie = New Collection
 
    With CreateObject("ADODB.Connection")
        .Open "Provider=Search.CollatorDSO;Extended Properties='Application=Windows';"
        With .Execute("SELECT System.ItemPathDisplay FROM SYSTEMINDEX " & _
                      "WHERE scope='file:" & Replace(dossier, "'", "''") & "' " & _
                      "AND System.FileName LIKE '" & Replace(Replace(motif, "*", "%"), "'", "''") & "'")
            Do Until .EOF
                RechercherFichierIndexedSimplifie.Add .Fields(0).Value
                .MoveNext
            Loop
            .Close
        End With
        .Close
    End With
    Exit Function

Erreur:
    MsgBox "Erreur : " & Err.Description, vbCritical, "Recherche indexée"
    Set RechercherFichierIndexedSimplifie = Nothing
End Function
Exemple d'utilisation
Code:
Sub TestRechercheSimple()
    Dim f As Variant
    For Each f In RechercherFichierIndexedSimplifie("Toto*122.*", "C:\Users\dysorthographie\Documents")
        Debug.Print f
    Next f
End Sub
Retour tous les fichiers excel contenant le texte budget 2025
Code:
SELECT System.ItemPathDisplay
FROM SYSTEMINDEX
WHERE CONTAINS('"budget 2025"')
AND System.Kind = 'document'
AND System.FileExtension = '.xlsx'


Bonjour,

Je ne pense pas que cela soit utile dans mon cas, je ne souhaite pas seulement avoir une liste de fichier mais extraire des données à partir de certaines

Ce que je cherchais à la base, c'est dans des fichiers excel, rechercher une "balise" et à partir de cette ligne où la balise est trouvée, retournée une valeur d'une autre cellule.
 
Re-,
Ta demande évolue tout le temps...
Vraiment pas facile de t'aider, si tu n'y mets pas du tien.
Et si tu mettais ne serait-ce qu'un fichier exemple, sans données confidentielles, mais avec ce que tu recherches, et ce que tu veux obtenir?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour