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

XL 2013 Recherche d'une valeur de la feuil1 dans une base de la feuil2

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 !

yvesauff

XLDnaute Nouveau
Bonjour à tous,
Je ne métrise pas les fonctions INDEX, EQUIV mais ce n'est peut être la solution.
Voici ce que je cherche à faire.
Dans le colonne D de ma feuil1 j'ai différentes valeurs.
Dans ma feuil2, il y a plusieurs lignes qui contiennent cette valeur et je souhaiterais récupérer ces numéros de lignes.
Tous les conseils sont bien venus.

Merci
 
Bonjour,
Dans ma feuil2, il y a plusieurs lignes qui contiennent cette valeur

Plusieurs fois la meme valeur dans une ligne
ou
plusieurs lignes dans une meme colonne
ou
un panaché des deux ?

- - - Un fichier EXCEL (test ou non), complété par des explications exhaustives et des exemples remplis à la main, mis sur le forum, permettrait aux intervenants de répondre plus précisément à ta question.
Crdmt
 
Bonjour yvesauff, djidji59430, le forum,

Avec cette macro le résultat est donné par une MsgBox :
VB:
Sub Recherche()
Dim F1 As Worksheet, F2 As Worksheet, d As Object, r As Range, P As Range, v, n&, mes$, nn&, col As Variant
Set F1 = Sheets("Feuil1")
Set F2 = Sheets("Feuil2")
'---liste des valeurs---
Set d = CreateObject("Scripting.Dictionary")
For Each r In F1.[D1].Resize(F1.Cells.SpecialCells(xlCellTypeLastCell).Row) 'colonne D
    If Not IsError(r) Then If r <> "" Then d(r.Value) = ""
Next
If d.Count = 0 Then Exit Sub
'---recherche des lignes en F2---
Set P = F2.UsedRange.Rows
For Each v In d.Keys
    n = Application.CountIf(P, v)
    If n Then
        mes = mes & vbLf & "Valeur " & v & " en ligne" & IIf(n > 1, "s ", " ")
        nn = 0
        For Each r In P
            col = Application.Match(v, r, 0)
            If IsNumeric(col) Then
                mes = mes & IIf(nn = 0, "", ", ") & r.Row
                nn = nn + 1
                If nn = n Then Exit For
            End If
        Next r
    End If
Next v
MsgBox IIf(mes = "", "Aucune valeur trouvée...", Mid(mes, 2)), , "Sur " & F2.Name
End Sub
A+
 
- 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
10
Affichages
149
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…