Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 rechercher un nom dans plusieurs fichiers

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 !

Akafal50

XLDnaute Nouveau
Bonsoir les amis

je souhaite rechercher un nom dans plusieurs fichiers ouverts
mon problème est que je ne voudrais pas rechercher un à un
cela est il possible?
ci-joint 3 fichiers dans lesquels je recherche le nom Dossi avec une seule opération
Merci pour votre assistance
 

Pièces jointes

Bonsoir Akafal,
Un essai en PJ avec :
VB:
Sub ChercherPartout()
Dim Nom$, Ligne%, i%, L%, Feuille$, Fichier$
Nom = [B1]: Ligne = 2: [E2:G1000].ClearContents
For i = 1 To Workbooks.Count
    Fichier = Workbooks(i).Name
    With Workbooks(Fichier)
        For Each F In Workbooks(Fichier).Sheets
            Feuille = F.Name
            If Application.CountIf(.Sheets(Feuille).Range("A:A"), Nom) > 0 Then
                L = Application.Match(Nom, .Sheets(F.Name).Range("A:A"), 0)
                Cells(Ligne, "E") = Fichier
                Cells(Ligne, "F") = Feuille
                Cells(Ligne, "G") = L
                Ligne = Ligne + 1
            End If
        Next F
    End With
Next i
End Sub
Le nom en B1 est recherché dans tous les fichiers ouverts et dans toutes les feuilles. Résultat en colonnes EFG.
 

Pièces jointes

Et si le nom peut apparaitre plusieurs fois en colonne A alors utilisez cette PJ modifiée avec :
VB:
            If Application.CountIf(.Sheets(Feuille).Range("A:A"), Nom) > 0 Then
                Lig = 1
                While .Sheets(F.Name).Cells(Lig, "A") <> ""
                    If .Sheets(F.Name).Cells(Lig, "A") = Nom Then
                        Cells(Ligne, "E") = Fichier
                        Cells(Ligne, "F") = Feuille
                        Cells(Ligne, "G") = Lig
                        Ligne = Ligne + 1
                    End If
                    Lig = Lig + 1
                Wend
            End If
 

Pièces jointes

Bonjour Akafal
Essyez ainsi :
1- Vous ouvrez la PJ du post #3 et votre fichier
2- Vous faites ALT+F11 ( ou onglet Développeur puis Visual Basic ) ce qui ouvre l'éditeur basic.
3- Vous cliquez sur Module1 et sans relâcher le clic vous faites glisser dans votre fichier.


Dans votre fichier vous créez une forme via Insertion Forme, puis clic droit sur cette forme et Affecter une macro.
Dans "Macros dans" vous choisissez Ce classeur puis cliquez sur "ChercherPartout" puis OK



Enregistrez votre fichier en xlsm pour accepter les macros.
Normalement quand vous cliquez sur votre forme la macro s'exécute.
Et vous devriez obtenir :
 
Dernière édition:
- 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

Réponses
17
Affichages
419
  • Question Question
Réponses
7
Affichages
327
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
287
Réponses
3
Affichages
116
Réponses
2
Affichages
154
Réponses
16
Affichages
214
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…