Effectuer une recherche croisée

Zeratec

XLDnaute Nouveau
Bonjour,

Je suis nouveau sur ce site, mais je le lis régulièrement afin de trouver des solution pour mes macros, mais sur cette question, je suis en plan !

J'explique le plus clairement possible.

Je possède un feuille de calcul avec, sur la première ligne des noms de matières et sur la première colonne des noms de personnes.

Je souhaite utiliser la fonction : Cells.Find(What:=MA_VARIABLE).Activate car je récupère les noms d'une autre feuille de calcul, afin de sélectionner la cellule Mr.DUPONT/Mathématique

En gros, il s'agit d'une pure recherche croisée dans un tableau

j'ai besoin de seulement selectionner la cellule "croisée"


PS : j'ai essayé d'utiliser ça Evaluate("MATCH(1,(N=s)*(matiere=nom),0)").Activate mais je ne comprends pas son fonctionnement.

PS 2 : Je travaille sous Excel 2013
 

Pièces jointes

  • exemple.xlsm
    8.4 KB · Affichages: 25
  • exemple.xlsm
    8.4 KB · Affichages: 29
  • exemple.xlsm
    8.4 KB · Affichages: 27
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Effectuer une recherche croisée

Bonsoir.
VB:
Function Croisé(ByVal Tablo As Range, ByVal Nom As String, ByVal Mat As String) As Range
Dim L&, C&
On Error GoTo Fin
L = WorksheetFunction.Match(Nom, Tablo.Columns(1), 0)
C = WorksheetFunction.Match(Mat, Tablo.Rows(1), 0)
Set Croisé = Tablo(L, C)
Fin:
End Function

Sub Test()
Croisé([A1:E7], "Dupont", "histoire").Value = "x"
End Sub
Remarque: s'il y en a beaucoup à faire il vaudrait mieux passer par deux Dictionary.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia