Bonjour,
J'aimerai faire une fonction qui renvoie une valeur contenue dans un tableau en fonction de l'intitulé de sa ligne et sa colonne.

Premier problème je n'ai aucune idée de comment parcourir le tableau (j'ai regardé l'aide F1 à Range, mais je ne parviens pas à trouver, et je ne sais pas s'il y a vraiment une solution).

Si j'arrivais à définir "Premiere_ligne", "Derniere_ligne" et "Premiere_colonne" et "Derniere_Colonne" dans le code, idéalement le code serait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Public Function Val_Index(tablo As Range, titre_ligne As String, titre_col As String) As Variant
Dim ligne, num_ligne, Premiere_ligne, Derniere_ligne As Integer
Dim colonne, num_col, Premiere_colonne, Derniere_colonne As Integer
    For ligne = Premiere_ligne To Derniere_ligne
        If Index(tablo, ligne, 1) = titre_ligne Then num_ligne = ligne
        For colonne = Premiere_colonne To Derniere_colonne
            If Index(tablo, 1, colonne) = titre_col Then num_col = colonne
        Next colonne
    Next ligne
    Val_Index = Index(tablo, num_ligne, num_col)
End Function
Mais l'autre problème c'est que même si la fonction Index() s'écrit bien comme ça en VBA lorsqu'on la met dans une Range().FormulaR1C1= (je l'ai testé en enregistrant une macro), ça n'a pas l'air de marcher hors d'une cellule excel.

Voilà, je ne suis pas très avancée, même pas du tout, pour cette fonction, mais je ne sais vraiment pas comment m'y prendre.
Si quelqu'un accepte de donner un coup de main, je l'en remercie d'avance.