Fonction recherche sur plusieurs feuilles avec plusieurs résultats

kisscool007

XLDnaute Nouveau
Bonjour,

Je cherche depuis quelques jours comment afficher le(s) résultats d'une recherche qui doit s'effectuer sur plusieurs feuilles différentes avec un affichage lisible.
J'oublie la fonction RECHERCHEV qui visiblement montre ses lilmites sur le nombre d'occurences dans une même feuille... J'ai vu quelques exemples avec des formules matricielles mais cela semble très compliqué à mettre en oeuvre.

Je joint un fichier d'exemple avec le résultat que je souhaite obtenir au final et plus d'explications

Merci pour votre aide.
 

Pièces jointes

  • Inventaire.xlsx
    13.7 KB · Affichages: 366
  • Inventaire.xlsx
    13.7 KB · Affichages: 384
  • Inventaire.xlsx
    13.7 KB · Affichages: 407

pierrejean

XLDnaute Barbatruc
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

bonjour kisscool007

et bienvenue sur XLD

Vois si cela te convient
NB: je n'ai prevu la recherche que sur un seul des 2 criteres et non sur les 2
 

Pièces jointes

  • kiscool_Inventaire.xls
    47.5 KB · Affichages: 1 291
  • kiscool_Inventaire.xls
    47.5 KB · Affichages: 1 262
  • kiscool_Inventaire.xls
    47.5 KB · Affichages: 1 139

s8fx

XLDnaute Nouveau
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

Bonjour,

Je me suis permis de prendre ce code car il correspondait presque a mes besoins.

j'ai supprimé la liste car je voulais être libre de mon texte.
Cela fonctionne mais je viens de m’apercevoir qu'il prenait en compte la casse, mais je voudrais m'en passer.

Pouvez vous m'indiquer ou chercher ou alors quel paramètre excel ou quelle variable de la macro il faudrait modifier?

Merci.
 

pierrejean

XLDnaute Barbatruc
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

Bonjour s8fx

Vois si cela te convient
 

Pièces jointes

  • kiscool_Inventaire.xls
    46.5 KB · Affichages: 243
  • kiscool_Inventaire.xls
    46.5 KB · Affichages: 275
  • kiscool_Inventaire.xls
    46.5 KB · Affichages: 297

s8fx

XLDnaute Nouveau
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

Bonjour messieurs et encore merci pour ces 2 réponses ultra rapide.

Alors j'ai essayé de m’accommoder de vos 2 codes mais j'ai du trop les mélanger ce qui fait qu'au final je me suis perdu.

Peut être ai je tord et devrais je ouvrir un nouveau post mais je vous fournis mon fichier tel que je le voudrais plutot que de modifier vos fichiers pour arriver au mien.

C'est peut etre plus simple pour vous en voyant le résultat que je désire.
Je suis désole je n'aime pas trop demander mais il faut dire que votre code BOISGONTIER est assez complexe et qu'il dépasse très largement mes maigres compétences.

Trouvez ci joint un exemple de mon fichier.
Le vrai contient 20 onglets (chiffre pouvant augmenter) de 1000 a 1500 lignes chacun (pouvant augmenter egalement)

l'idée est de remplir un des 2 champs en vert pour chercher cette variable dans tous les onglets les mettre le résultat en forme dans le tableau ci dessous pour que je puisse l'imprimer tel quel.

Mon tableau respecte l'idée de vos codes ou les 2 valeurs recherchées en feuil1 sont tjrs dans les meme colonne G et H sur tout les autres onglet et le tableau de résultat est identique au tableau de données.

Vous pouvez modifier le type de fichier en .Xlsm.
Je suis en Office 2010.

Merci pour votre retour.
 

Pièces jointes

  • Brassage.xlsx
    27.5 KB · Affichages: 140

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

Voir PJ

Sélectionner A2:K120
=cherche3D2(3;4;$G$1; "G2:G1000";$H$1;"H2:H1000"; "A2:K1000")
-Valider avec Maj+Ctrl+entrée

cherche3D2(début, fin, clé1, champRecherche1, clé2, champRecherche2, champRésultat)


Code:
Function cherche3D2(début, fin, clé1, champRecherche1, clé2, champRecherche2, champRésultat)
  Application.Volatile
  Dim b()
  nlig = Application.Caller.Rows.Count
  ncol = Application.Caller.Columns.Count
  ReDim b(1 To nlig, 1 To ncol)
  n = 0
  For s = début To fin
    Set f = Sheets(s)
    Tab1 = f.Range(champRecherche1).Value
    Tab2 = f.Range(champRecherche2).Value
    Tab3 = f.Range(champRésultat).Value
    For lig = 1 To UBound(Tab1)
      If (UCase(Tab1(lig, 1)) = UCase(clé1) Or (clé1 = "*" And Tab1(lig, 1) <> "")) Then
        If UCase(Tab2(lig, 1)) = UCase(clé2) Or (clé2 = "*" And Tab2(lig, 1) <> "") Then
          n = n + 1
          For k = 1 To ncol:   b(n, k) = Tab3(lig, k): Next k
        End If
      End If
     Next lig
   Next s
   cherche3D2 = b
End Function

Fonction recherche 3D VBA

JB
 

Pièces jointes

  • Brassage.xls
    153.5 KB · Affichages: 141
Dernière édition:

s8fx

XLDnaute Nouveau
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

Bonjour,

et merci pour cette réponse très rapide.

Je me suis mal exprimé, je ne voulais pas de liste mais je me suis aperçu qu'elle était dynamique donc a priori pas de pb.

Par contre c'est possible d'ajouter des données directement dans les 2 pages ça les ajoute a la liste automatiquement, par contre ajouter une nouvelle feuille dans le classeur elle ne s'ajoute pas a la liste.
Après j'ai compris qu'il fallait recréer une nouvelle fonction cherche3DFeuilleX + cherche3DX
et changer toutes les variables.

Mais cela sera complétement illisible a la fin avec mes 28 onglets...

Savez vous si c'est simplifiable ?
 

s8fx

XLDnaute Nouveau
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

Wahou votre rapidité m'impressionne réellement.

Malheureusement dans votre fichier donné (ci dessus) si j'ajoute une valeur dans la colonne "inventaire", elle ne s'ajoute pas a la liste (alors qu'avant oui)
du coup meme quand j'ajoute une nouvelle feuille avec de nouvelles valeurs ca ne fonctionne pas non plus.
 

s8fx

XLDnaute Nouveau
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

a chaque étape sa question :)

tout est OK
sauf que maintenant je veux integrer mes 18 onglet avec leurs 750 lignes en moyenne.

J'ai fait un extract, j'ai a peu pres 1000 code barre unique.
J'ai donc étendu la liste a 999 en A et B
puis modifier les 2 champs liste à : =DECALER(Liste!$A$2;;;NB.SI(Liste!$A$2:$A$999;"<>0"))

Mais cela garde tjrs la trace de la liste de 53 maximum.
En A53 j'ai un champs vide puis en dessous j'ai le retour #valeur!

Cela fonctionne pour les 5 premiers ID unique mais n'ajoute pas les nouveau.
De plus cela est maintenant tres long quand je choisis une valeur en G1 (3 minutes)
Avez vous une idée ?
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

>De plus cela est maintenant tres long quand je choisis une valeur en G1 (3 minutes)
Avez vous une idée ?


Consolider toutes les feuilles dans une seule et utiliser le Filtre auto

Gestion des onglets et des classeurs

JB
 

Pièces jointes

  • Brassage-1.xls
    295 KB · Affichages: 156
  • Brassage-1.xls
    295 KB · Affichages: 170
  • Brassage-1.xls
    295 KB · Affichages: 196

s8fx

XLDnaute Nouveau
Re : Fonction recherche sur plusieurs feuilles avec plusieurs résultats

Bonjour Boisgontier et merci pour tout ces efforts!

Merci aussi pour le conseil pour consolider les feuilles, ca sera pratique.
Par contre une petite remarque pour votre site. En y allant par la page d'accueil on ne voit pas toutes vos rubriques (articles) dans le menu latéral. La navigation s'en trouve pénalisée si on cherche par thème. Par contre votre champs de recherche interne lui fonctionne très bien!

pour le fichier, aprés une matinée d'utilisation cela fonctionne trés bien! Trop peut etre :confused:
Effectivement, quand on ouvre le fichier seul c'est OK par contre dès qu'on ouvre un autre fichier excel en parallèle la recherche se fait alors dans tous les fichiers excel d'ouvert, puis reste dans la liste meme si on referme le 2nd fichier...
J'ai cherché ou était la variable qui avait la même fonction que ActiveWorkbook ou ThisWorkbook, mais je ne vois pas ou elle est.

Comment limite t on cette recherche ?

Dans le même temps, j'ai une seule feuille qui ne respecte pas la norme pour les colonnes mais j'en ai malgré tout besoin dans le fichier, comment puis je l'exclure de la recherche ?

Merci d'avance.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal