Bonjour,
J'aimerais faire une fonction que j'appele RechercheT (dans le sens où elle fonctionne comme une rechercheV ou H, mais ne va pas chercher le résultat dans une ligne ou une colonne, mais dans un tableau).
Voici la fonction brute que j'utilse dans excel : (DECALER(INDEX(Tableau;EQUIV(Valeur_cherché;Colonne/ligne;0);Ligne-1);Colonne;0;1;1)
j'aimerais en faire une macro, et voici comment j'ai procédé :
Function RECHERCHET(Tableau As Range, C_L As Range, Valeur_cherchée As String, Ligne As Integer, Colonne As Integer) As String
Dim Aux As Integer
Aux = Ligne
Ligne = Aux - 1
Dim L_Val As Integer
L_Val = Application.WorksheetFunction.Equiv(Valeur_cherchée, C_L, 0)
Dim Cell_final As Range
Set Cell_final = Application.WorksheetFunction.Index(Tableau, L_Val, Ligne)
Dim Aux_Cell As Range
Set Aux_Cell = Cell_final
Set Cell_final = Aux_Cell.Offset(0, Colonne)
RECHERCHET = Aux_Cell.Value
End Function
Quand je la rentre dans une cellule, excel tient à ce que je mette un nombre (???) pour la variable C_L :( .
Alors que C_L représente la ligne ou la colonne où la valeur devrait être cherchée. De plus, je ne crois pas qu'il prenne correctement en compte la fonction equiv dans ma macro.
J'ai cherché sur plusieurs sites internets, et impossible de trouver un tutorial/une aide/une question à propos de l'utilisation de fonctions pré-installées (comme equiv ou recherV, ou n'importe) dans une macro.
Merci de votre future aide :)

Très belle analyse du problème posé comme d'habitude et bien le bonjour au Canada.
Il faut en effet que la fonction soit parfaitement structurée pour fonctionner de façon identique à la formule.
Et le résultat de ma fonction est #VALEUR!
Merci pour ton aide, en effet Equiv est Match en anglais :)