Comment récupérer la valeur d'un menu déroulant dans une formule

Résolu/Fermé
Flow913 Messages postés 7 Date d'inscription lundi 9 février 2015 Statut Membre Dernière intervention 10 février 2015 - 9 févr. 2015 à 14:37
Flow913 Messages postés 7 Date d'inscription lundi 9 février 2015 Statut Membre Dernière intervention 10 février 2015 - 10 févr. 2015 à 16:25
Bonjour à tous !

Ceci est mon premier message sur ce forum, merci d'avance pour votre aide et votre patience !
Autant je suis très débrouillard en Excel et VBA, autant Word reste un peu ma bête noire dès qu'il s'agit de "codes de champs" etc...
On m'a donné comme tâche de mettre à jour un fichier de chiffrage, qui calcul un coût total en fonction d'un tarif journalier et du nombre de jours comptés dans le devis (jusque là, c'est juste une formule dans un tableau, un SUM qui compte le nombre de jours et le multiplie par le tarif qui était fixe... jusqu'à maintenant).
La mise à jour consiste donc à prendre en compte le fait que le tarif n'est plus fixe, et donc d'aller chercher cette valeur dans un menu déroulant.

Voilà j'ai essayé de poser mon problème le plus simplement possible sans trop oublier d'infos.

Auriez vous une idée ? Voir même une solution ? :P

Cordialement, Florian.

2 réponses

C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 2 213
9 févr. 2015 à 15:22
Bonjour Florian,

pour récupérer la valeur d'une liste déroulante, dans ta formule de base, que tu affiches avec ALT F9, à l'endroit où tu veux faire appel à la valeur de la liste déroulante, tu tapes CTRL F9 pour obtenir { } et à l'intérieur tu indiques le nom de ta liste déroulante.

Dans les propriétés du champ Nombre de jour (champ numérique), tu dois activer la case "Calculer à la sortie".

Tu peux donc avoir ton total qui ressemble à cela si B2, B3 et B4 contiennent le nombre de jours et si Listedéroulante1 est el nom de ta liste :
{ =SUM(B2:B4) * { Listedéroulante1 }}
Tu verrouilles ton formulaire et tu testes.
Si cela ne fonctionne pas, reviens en indiquant ta formule avec un exemple concret.

Attention : les { } s'obtiennent avec CTRL F9. N'utilise pas celles du clavier, cela ne fonctionnerait pas.

PS : comme tu le vois, on peut indiquer les références des cellules comme dans Excel en utilisant A1, etc. Tu comptes toi-même les colonnes et les lignes.
0
Flow913 Messages postés 7 Date d'inscription lundi 9 février 2015 Statut Membre Dernière intervention 10 février 2015
9 févr. 2015 à 16:20
Bonjour Claire, et merci pour ton aide !

Alors j'ai réussi à importer la valeur de la liste déroulante dans mon calcul, c'est déjà une première victoire. Apparemment je n'utilisais pas le bon type de liste déroulante : dans l'onglet "Développeur" je cliquais sur les boutons "Zone de liste déroulante" ou "Liste déroulante", alors qu'il fallait apparemment cliquer sur "Outils hérités" et choisir "Zone de liste déroulante (avec contrôle ActiveX)" (sinon il me met une erreur de syntaxe, "Signet non défini").

Le second problème qui se pose alors est que je ne dois pas faire apparaître la valeur qui intervient dans le calcul, je m'explique :

La liste déroulante comporte plusieurs choix, qui ont chacun une valeur correspondante
- choix 1 = prix 1
- choix 2 = prix 2
...
Il faut que ma liste déroulante propose les différents "choix X", et que la valeur "prix X" soit ensuite prise pour le calcul, sans être affichée.

Est-ce possible ?
0
C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 2 213 > Flow913 Messages postés 7 Date d'inscription lundi 9 février 2015 Statut Membre Dernière intervention 10 février 2015
9 févr. 2015 à 16:59
Tout est possible plus ou moins facilement ou directement :-)

Tu as bien fait de prendre la liste dans les outils hérités, mais je ne suis pas certaine que la liste avec contrôle ActiveX soit utile, sauf à utiliser des macros.

As-tu de nombreux choix dans ta liste déroulante ou est-ce juste 2 ou 3 ?
S'il y en a peu, un ou 2 "IF" devraient suffire.
Par exemple :
{ IF { Listedéroulante1 } = 1 { =SUM(B2:B4)*100} { =SUM(B2:B4)*200} }

C-Claire
0
Flow913 Messages postés 7 Date d'inscription lundi 9 février 2015 Statut Membre Dernière intervention 10 février 2015 > C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016
Modifié par Flow913 le 10/02/2015 à 10:57
J'ai un total de 7 choix possibles... Donc en attendant une meilleure solution je vais "essayer" de faire 6 IF imbriqués ! ^^' Mais c'est quand même archi galère et illisible..

De plus mes choix sont de la forme "CHOIX = 0%", "0% < CHOIX < 2%"... etc.
Dois-je utiliser des guillemets ? Où dois-je mettre des {} ?

EDIT : c'est trop galère, quelqu'un saurait-il comment écrire directement via une maccro le résultat dans la case voulue (mes petites méthodes Excel ne semblent pas fonctionner...). Il sera plus simple de faire les IF imbriqués en VBA ^^'.
0
C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 2 213 > Flow913 Messages postés 7 Date d'inscription lundi 9 février 2015 Statut Membre Dernière intervention 10 février 2015
10 févr. 2015 à 11:13
Une meilleure réponse serait sans doute d'insérer un tableau Excel avec liaison par exemple.
Word n'est pas un logiciel de calcul même si, avec de la patience, on peut lui faire faire beaucoup de choses.

Ta formule va ressembler à ceci pour 3 choix :
{ IF { Listedéroulante1 } = 0% 0% { IF { Listedéroulante1 } = 2% { =SUM(B2:B4)*100} { IF { Listedéroulante1 } = 3% { =SUM(B2:B4)*200} } } }
Tu pourras la compléter facilement en copiant/collant le { IF...}

C-Claire
0