Recherche d'une valeur dans plusieurs feuilles
Bonjour,
J'ai un souci sur une recherche qui me donne du fil à retordre.
Alors j'ai 26 feuilles dans un classeur qui sont nommées en fonction d'un type de mot (exple: stéthoscope, gants,... c'est du matériel médical).
Dans chaque feuille j'ai des tableaux qui ont le même nombre de colonnes avec les mêmes noms (exple: séquences de mots clés, note/10, recherches mensuelles, ...). Par contre elles n'ont pas le même nombre de ligne.
Ce que je veux s'est retrouver les 20 recherches mensuelles les plus élevées de toutes les feuilles. Ca c'est bon. J'ai bidouillé à la main.
En fonction de ça je veux y associer les séquences de mots clés correspondants venant donc de la feuille correspondante.
Exple: la séquence de mots clés "fauteuil roulant" est celle qui est la plus tapé avec 5000 mots par mois,
la séquence de mots clés "gant latex" est celle qui est la plus tapé avec 4900 mots par mois,... etc.
Donc si je rentre:
=GRANDE.VALEUR(Gants:Instruments!$F$2:$F$100;1)dans une cellule j'ai bien la plus grande valeur.
Mais
=EQUIV(Gants:Instruments!F2:F100;0)me sort "#REF! et
=RECHERCHEV(D2;Gants:Instruments!F2:F100;1;false)ressort "#VALEUR!"
J'ai essayé de me dépatouiller avec equiv, index, ... mais sans succès. Si quelqu'un à une idée.
Merci
Bonjour
Les fonctions EQUIV et RECHERCHEV ne s'appliquent que sur une seule feuille et ne renvoient qu'un seul résultat: Le premier trouvé
Sauf à utiliser un Code VBA comme sur ce fichier de Banzai64
https://forum.excel-pratique.com/excel/recherche-d-une-valeur-t27282.html
Cordialement
Bonjour,
Merci pour votre lien. En fait j'étais déjà aller voir ce poste mais j'ai pas trop compris la structure du module. En effet il y a deux feuilles (Module1 et Feuil1) mais j'ai pas l'impression que les deux fonctionnent l'une avec l'autre et du coup je sais pas comment les utiliser.
Voici la feuil1
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("B2:B10"), Target) Is Nothing And Target.Count = 1 Then
Recherche Target.Value, Target.Row
End If
End SubEt voici le Module1
Option Explicit
Sub Recherche(Nom As String, Ligne As Long)
Dim Cel As Range
Dim Depart As String
Dim Ws As Worksheet
Range("C" & Ligne & ":D" & Ligne).ClearContents
For Each Ws In Sheets(Array("Electricité", "Menuiserie", "Plomberie", "Aménagement"))
Set Cel = Ws.Cells.Find(what:=Nom, LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Range("C" & Ligne) = Cel.Offset(0, 1)
Range("D" & Ligne) = Ws.Name
Exit Sub
End If
Next Ws
MsgBox "Produit non trouvé"
End SubMerci d'avance pour votre aide