Recherches matricielle possibles et imaginables

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 !

julien974

XLDnaute Occasionnel
Bonjour,

J'aimerai connaître les différentes manières de chercher dans un tableau à double entrée que ce soit en VBA ou en Formule.

J'ai mis trois manières de procéder avec des formules.

Merci d'ajouter d'autres pistes...

Cordialement,

Juli3n974
 

Pièces jointes

Re : Recherches matricielle possibles et imaginables

Bonjour le fil, la Réunion et le Forum
tu ajoute une feuille dans ton projet (que j'ai nommé "Feuil1")
et tu mets ce code dans le ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
With Sheets("Feuil1")
If .Range("A12") <> "" And .Range("A14") <> "" Then _
.Range("A16") = .Range(.Range("A12") & .Range("A14"))
End With
Application.EnableEvents = True
End Sub

Bon courage et à +
Denis
 
Re : Recherches matricielle possibles et imaginables

re,

C'est pas fini avec les formules :

Code:
=DECALER(A1;EQUIV(A12;A2:A9;0);1;1;6) DECALER(A1;0;EQUIV(A14;B1:G1;0);8)

Avec utilisation de l'espace comme symbole de l'intersection

@+
 
Re : Recherches matricielle possibles et imaginables

Bonjour à tous

une autre solution vba :

Code:
Dim x As Range, y As Range, z As Range
Set y = Range("A2:A9").Find(Range("A12").Value, , xlValues, xlWhole, , , False)
Set z = Range("B1:G1").Find(Range("A14").Value, , xlValues, xlWhole, , , False)
If Not y Is Nothing And Not z Is Nothing Then _
    Set x = Application.Intersect(Rows(y.Row), Columns(z.Column)): MsgBox x.Value

bon après midi
@+
 
Re : Recherches matricielle possibles et imaginables

Bonjour tout le monde

D'autres possibilités toujours en formule, à partir des fonctions déjà indiquées sur ce fil, mais pas vraiment décrites sur le forum, c'est plus pour indiquer des subtilités d'Excel.

1) C'est Didier un soir qui m'a indiqué celle-ci.
Après avoir déclarer deux Noms :
V = formule
Code:
=DECALER(Feuil1!$B$1:$G$1;EQUIV(Feuil1!$A$12;Feuil1!$A$2:$A$9;0);0)
H = formule
Code:
=DECALER(Feuil1!$A$2:$A$9;;EQUIV(Feuil1!$A$14;Feuil1!$B$1:$G$1;0))
ensuite on utilise dans une cellule la formule
Code:
=V H
ici, l'espace est un opération d'intersection entre deux plages

2) INDEX ne renvoie pas qu'une seule valeur, mais peut renvoyer une matrice.
Code:
=INDEX(INDEX(B2:G9;EQUIV(A12;A2:A9;0);0);1;EQUIV(A14;B1:G1;0))

PS : pas assez rapide pour la première, identique à la solution de Tibo

@+Jean-Marie
 
Re : Recherches matricielle possibles et imaginables

Re

en utilisant un tableau virtuel, en suposant que tes cellules A2 à A9 soient renseignées par des chiffres de 1 à 8 :

Code:
Dim t() As Variant
t = Range("B2:G9").Value
MsgBox t(Range("A14").Value, Range("A12").Value)

@+
 
- 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

L
Réponses
10
Affichages
1 K
L
T
  • Question Question
Réponses
7
Affichages
2 K
M
Réponses
3
Affichages
874
mathilde.huchin
M
L
Réponses
1
Affichages
983
Retour