Bonjour,
Je ne suis pas un pro de la programmation en VBA sous Excel.
Je me suis mis à ce loisir dans le cadre d'un développement de projet personnel.
J'ai un tableau de bord où plusieurs matrices sont renseignées dans différentes feuilles et après un certain nombre de calculs intermédiaires, un résultat apparait dans une feuille dédiée pour un utilisateur X.
J'ai donc dû me mettre à la "programmation" de petites macros et la création de fonctions.
J'ai souhaité créer un fonction type RechercheV avec une seule donnée d'entrée la valeur recherchée.
Après avoir investigué différents forums ou supports, je suis arrivé à écrire la fonction suivante:
Grâce à l'outil "Définir un nom", j'ai créé "TableDeRecherche" pour cibler ma matrice de valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Function VLookUpForm(ByVal ValeurRecherchee) As Double Range("TableDeRecherche").Select Dim NbLignes As Integer NbLignes = Range("TableDeRecherche").Rows.Count For i = 1 To NbLignes If Range("TableDeRecherche")(i, 1).Value = ValeurRecherchee.Value Then VLookUpForm = Range("TableDeRecherche")(i, 2).Value GoTo FinDeRecherche End If Next i FinDeRecherche: End Function
Au début de mes tests, la matrice et la valeur recherchée étaient sur la même feuille. Tout fonctionnait bien.
J'ai donc souhaité passer à l'étape supérieure.
Dans mon classeur final, ma matrice et la valeur recherchée ne sont pas sur la même feuille.
J'ai donc simulé cette réalité dans mon fichier test.
Il s'avère que ma fonction ne marche plus. Elle me renvoit "#Valeur!"
J'ai vérifié que ma définition de nom TableDeRecherche soit sur tout le classeur.
J'ai tenté également de faire activer la feuille où se trouvait ma matrice.
Après un petit moment, aucune piste sérieuse ne m'est apparue.
Je suis revenue à utilisation temporaire de la fonction recherchev avec toutes ses entrées le temps de trouver une solution.
Je m'adresse à vous en espérant que vous pourrez m'aider.
Je vous en remercie par avance.
EssorNum
Partager