Valeurs affectées à une liste déroulante

Bonjour à tous,

J'ai créé une liste déroulante qui va de 0 mètre à 30 mètres.

Je me sers de la cellule liée pour calculée un prix.

Il y a un décalage du fait que le premier nombre apparaissant dans la cellule liée est un alors que m'a liste commence par 0. Mais j'ai réussi à contourner le problème en passant par une cellule intermédiaire qui vaut "cellule-liée - 1".

Me suivez-vous déjà jusque là ?

Seulement je souhaiterais que ma liste ne soit pas linéaire car jusqu'à 10 mètres, j'ai besoin d'afficher, en plus, les 1/2 mètres ; soit 0,5, 1,5, etc... jusqu'à 9,5 mètres puis de reprendre avec un incrément de 1.

De ce fait, l'utilisation de la cellule liée ne convient plus car elle ne fait que "+1".

Voyez-vous comment je pourrais faire pour avoir ce que je souhaite affiché dans la liste déroulante, mais qu'une valeur propre soit affectée à chaque élément de la liste ?

Excel permet-il cela sans passer par une macro ?

Merci pour votre aide,

Lim.

Bonsoir

Limerick a écrit :

J'ai créé une liste déroulante qui va de 0 mètre à 30 mètres.

Comment ?

Si c'est par un contrôle formulaire, tu dois avoir noté dans le format de contrôle la plage d'entrée

Sers toi de cette plage et de la cellule liée pour calculer ton prix

Ta plage d'entrée : H1:H41

Dedans il y a

  • 0
  • 0,5
  • 1
  • 1,5
  • 27
  • 28
  • 29
  • 30

Ta cellule liée F1

La formule du prix

=INDEX(H1:H41;[surligner=#FFFF80]F1)*Prix_Unitaire

Si je suis à côte de la plaque

Oui, un fichier sera plus explicatif (j'ai transformé les mètres en carambars)....

Bonsoir

A tester

Merci beaucoup, le résultat correspond exactement à mon souhait.

Je vois que le truc est de travailler sur la formule de calcul.

Je vais voir comment l'adapter à mon fichier réel.

Bonsoir

En deux mots

Aide Excel

C'est expliqué dans mon 1er message

=GAUCHE(INDEX(I3:I43;J4);TROUVE(" ";INDEX(I3:I43;J4)))*M10
INDEX(I3:I43;J4)

récupère le J4ème élément de la liste I3:I43

TROUVE(" ";INDEX(I3:I43;J4))

renvoie la position de l'espace dans la chaîne de caractères renvoyée par INDEX

=GAUCHE(INDEX(I3:I43;J4);TROUVE(" ";INDEX(I3:I43;J4)))

: Retourne la partie de texte située avant les caractères

M10 

est la valeur unitaire

LOL Merci.

En fait, si dans mon fichier réel, je veux juste récupérer les valeurs de la liste, sans les multiplier par la valeur unitaire, où dois-je couper ta formule ? (Je pose la question car si dans ton fichier, je supprime simplement *M10, ça ne fonctionne pas)

En fait je voudrais mettre la valeur de la liste dans une cellule, et seulement après effectuer le calcul du prix total avec la valeur unitaire par une simple multiplication de deux cellules.

Bonjour

M10 est la valeur unitaire

Coupes la formule avant le signe * (multiplication)

Et tu auras la valeur (quantité) mais comme c'est du texte que tu obtiens il faut multiplier par 1 pour avoir un nombre

Ah c'est donc ça !

Je voyais bien qu'en supprimant *M10 ça ne fonctionnait pas et ne comprenais pas pourquoi il fallait multiplier par 1 pour que ça refonctionne.

En tout cas merci beaucoup pour ton aide qui m'a permis d'atteindre mon but. 8)

Rechercher des sujets similaires à "valeurs affectees liste deroulante"