Vlookup sur une Matrice

Bonjour,

Je fais appel à votre dextérité dans Excel pour l'exercice suivant

en tapant un chiffre désiré par exemple 45

je voudrais qu'Excel cherche ce chiffre dans la matrice B2:XX999

et à chaque fois que 45 existe de m'indiquer le chiffre Unique (sans Doublon)

Présent en A2:A999 résultats 125 / 201 / 56

Merci d'avance

A B C D E F ........

1 RCP U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13 U14 U15 U16 U17 U18 U19

2 125 70 29 15 88 7 33 17 81 30 17 41 71 35 82 5 88 21 13 61

3 125 37 27 72 33 64 9 70 98 20 65 42 60 73 83 77 45 9 32 39

4 125 39 99 61 68 84 26 54 38 22 95 97 83 84 6 85 89 62 56 69

5 125 78 79 56 98 75 80 14 16 9 89 53 98 91 99 44 28 24 25 67

6 99 35 56 85 35 81 97 85 68 69 61 46 97 65 14 40 23 81 94 25

7 99 13 23 57 7 84 34 19 33 71 28 45 66 92 84 59 11 66 8 61

8 99 17 86 55 99 80 93 67 8 51 5 82 43 31 91 73 23 82 33 95

9 99 8 84 19 69 81 45 6 88 81 76 53 16 11 19 12 79 27 70 25

10 201 72 22 28 37 4 77 12 73 49 7 57 99 51 6 89 44 46 22 84

11 201 38 99 21 81 96 57 84 53 19 85 21 21 49 86 58 20 23 85 8

12 201 39 76 22 56 21 37 36 65 45 63 79 9 97 13 72 26 15 61 30

13 201 98 35 23 78 27 86 40 13 57 85 47 98 69 17 76 36 55 17 7

14 33 85 58 76 71 76 90 43 82 52 55 55 35 48 9 95 54 87 13 47

15 33 66 10 96 85 37 51 17 28 51 65 43 96 82 84 98 87 87 37 31

16 33 92 48 6 57 21 87 87 25 11 35 51 85 11 99 34 28 56 35 98

17 56 57 83 24 48 78 70 23 6 86 26 79 79 20 86 36 62 12 91 64

18 56 73 78 54 45 63 59 12 28 52 71 76 97 70 29 23 72 82 50 21

19 56 82 51 54 63 19 68 12 84 94 64 30 95 57 14 41 45 97 69 25

Daniel


Désolé il y avait aussi le 99

Merci

Salut,

Voici une possibilité en visitant chaque cellule de la matrice :

Sub Recherches()
Dim Plage As Range
Dim CL As Range
Dim Nombre As Variant
Dim Resultat As String, Temp As String
Dim Compteur As Long
Nombre = InputBox("Quel élément voulez-vous chercher ?")
If IsNumeric(Nombre) Then
  Nombre = CDbl(Nombre)
  Resultat = "/"
  Set Plage = Range(Range("B2"), Cells(Range("A1").End(xlDown).Row, Range("A1").End(xlToRight).Column))
  Plage.Interior.ColorIndex = 0
  For Each CL In Plage
    If CL = Nombre Then
      CL.Interior.ColorIndex = 6
      Temp = "/" & CStr(Cells(CL.Row, 1)) & "/"
      If InStr(Resultat, Temp) = 0 Then
        Compteur = Compteur + 1
        Resultat = Resultat & Right(Temp, Len(Temp) - 1)
      End If
    End If
  Next
  If Compteur > 0 Then
    Resultat = Mid(Resultat, 2, Len(Resultat) - 2)
    MsgBox Compteur & " élément" & IIf(Compteur > 1, "s", "") & " :" & vbLf & Resultat
  Else
    MsgBox "Aucune correspondance avec " & Nombre
  End If
End If
End Sub

A+

H

Bonjour,

=INDEX($A$1:$A$999;PETITE.VALEUR(SI($B$2:$XX$999=45;LIGNE($B$2:$XX$999);"");LIGNE(1:1)))

Matricielle. A tirer vers le bas...

Remplacer 45 par une réf de cellule contenant 45, pour faire varier le critère...

Mettre la formule dans un SIERREUR, pour qu'elle n'affiche plus rien quand on aura épuisé les nombres correspondant au critère.

NB- Un fichier aurait facilité !

Cordialement.

LordNelson c'est purement au- dela de mes espérances Génial et Merci

MFerrand ta proposition ne démérite pas et Merci car tu fais parti des personnes qui fait avancé les choses

Grand Merci à vous deux

LordNelson,

comment procéder pour allez plus loin que l'affichage du résultat .

j'exploiterai chaque résultats séparément donc je voudrai mettre à l'horizontal cellule après cellule ces resutats

dans un onglet que j'ai nommé "Rcp"

Merci

Salut,

Merci pour ton retour.

Bien sûr, tu peux détailler le résultat (fonction Split) et l'envoyer vers la feuille RCP.

As-tu un emplacement précis ou bien veux-tu afficher plusieurs résultats sur différentes lignes ?

Onglet Rcp D17 D18 D19.....

Merci pour ton aide precieux

Donc, il faudrait ajouter ces variables en début de procédure :

Dim NumLigne As Long
Dim TResult() As String
Dim I As Integer

et ceci à la fin pour retenir les résultats :

  If Compteur > 0 Then
    Resultat = Mid(Resultat, 2, Len(Resultat) - 2)
    MsgBox Compteur & " élément" & IIf(Compteur > 1, "s", "") & " :" & vbLf & Resultat
'Nouveau code :
    TResult = Split(Resultat, "/")
    With Sheets("Rcp")
      NumLigne = .Range("D1048576").End(xlUp).Row + 1
      .Range("D" & NumLigne) = Nombre
      For I = 0 To UBound(TResult)
        .Cells(NumLigne, I + 5) = TResult(I)
      Next
    End With
'Fin du nouveau code
  Else
    MsgBox "Aucune correspondance avec " & Nombre
  End If

A toi de jouer et on en reparle demain.

Bonne nuit !

C'est purement génial

Grand merci, tu es un génie

Sympa de ta part pour ce gros coup de pouce

MERCI !!!!!!!!!

Rechercher des sujets similaires à "vlookup matrice"