Comment récupérer indirectement la valeur d'une constante par son nom

J'ai cherché autant comme autant en faisant le tour du net, mais je ne trouve pas de solution à mon besoin. Peut-être que je n'utilise pas les bons mots clés ?

J'ai un classeur Excel avec plusieurs feuilles. Dans un module, j'ai défini des constantes avec des valeurs numériques.

Dans une feuille nommée « PARAM », j'ai créé un tableau avec des noms de situation auxquels j'ai associé à chaque situation le nom d'une de ces constantes.

Dans la procédure « Workbook_SheetSelectionChange », dépendant de la situation en cours, j'ai besoin de récupérer la valeur de la constante associée à cette situation qui est inscrite dans le tableau de la feuille « PARAM ». Autrement dit, c'est une récupération indirecte de la valeur d'une constante via son nom inscrit dans une cellule Excel.

Je croyais au départ que ce serait simple, eh bien non, je me suis cassé les dents sur le rebord de l'inconnu.

J'imagine que la solution est probablement simple, mais je suis au bout de ma chaîne.

Quelqu'un aurait-il s.v.p.une solution pour moi ?

Merci à l'avance !

Bonjour,

Un fichier joint (sans données confidentielles) serait le bienvenu.

Cdlt

Voilà très cher !

18constantes.xlsb (20.34 Ko)

Salut Hexa,
Salut Arturo,

Je ne pige pas trop tes explications et ton fichier ne reflète rien de vraiment clair!
Tu veux récupérer une valeur X dans une cellule ou tu veux sauvegarder la valeur d'une cellule ?

Une piste pour toi que j'utilise souvent : au lieu de créer des variables publiques, je crée des cellules nommées ou je vais chercher ou sauvegarder des valeurs dont je peux avoir besoin n'importe où dans les feuilles.

Tu peux préciser ta demande avec un exemple précis?

A+

Bonjour Curulis,
Bonjour Arturo,

Ok, je vais tenter d'expliquer le tout textuellement.

1) J'ai besoin d'associer des couleurs à des situations et lorsque qu'une de ces situations se présente, de récupérer la couleur associée. Comme il y a plusieurs couleurs différentes dont j'ai besoin, j'ai décidé de définir celles-ci dans un module avec des constantes contenant le code de chacune dont j'ai besoin, parce que chacune d'elle peut être utilisée à plusieurs reprise.

2) Étant donné que je sais quelle couleur je veux associer à telle situation, j'ai décidé de créer un tableau dans une feuille particulière nommée « PARAM », qui contient tous les paramètres de mon classeur, où j'ai associé telle couleur à telle situation en y inscrivant le nom de la couleur choisie vis-à-vis le nom des situations concernées.

3) Dans chacune des autres feuilles du classeur (il y en a plusieurs), lorsqu'une situation se présente, je veux récupérer le code de couleur associé à cette situation en récupérant le nom de la constante inscrit dans le tableau de la feuille PARAM vis--a-vis le nom de la situation en cours, pour ensuite récuprer le code de couleur via le nom de la constante.

De manière plus concise :

Module contient :
Constante A

Feuille PARAM contient :
Cells(1, 1) = Situation X
Cells(1, 2) = Constante A

Feuille quelconque contient :
If Situation X then
VarNomConstante = Sheets(PARAM).cells(1, 2)
VarCouleur = Evaluate(VarNomConstante)
End If

En théorie, cela est supposé fonctionné.

Mais en pratique VarCouleur contient : Erreur 2029

Ce que je cherche, c'est de récupérer la valeur de la constante via son nom.

Voila !

Merci à l'avance de votre aide !

Christian

salut,

pourquoi passer par du vba ???

des Mfc ne conviendraient elles pas ?

Bonjour,

Au lieu de créer des constantes, je préfère créer une liste des couleurs avec leur code respectif dans la feuille "Liste_des_couleurs", plus facile à modifier si vous devez modifier ou ajouter des couleurs.

Cdlt

Edir:

Autre méthode, dans la feuille "Liste_des_couleurs", on applique la couleur sur la colonne "A" plutôt que le nombre de la couleur.

Rechercher des sujets similaires à "comment recuperer indirectement valeur constante nom"