Parcourir un tableau et transcrire la fonction INDEX() en VBA
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:
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.