URGENT: liste deroulante excel

Fermé
sakalyn - 12 juin 2008 à 11:41
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 - 16 juin 2008 à 14:41
Bonjour,

je vais essayer d'être clair car mon problème n'est pas aisé (du moins pour moi).

Je travaille sur une base de données Excel 2003, que je v vous simplifier en 3colonnes:
A: code client / B: nom client / C: référence client


Donc je voudrais faire une liste déroulante code client (ça c'est assez simple). Le probleme, lorsque je choisit un code client (par ex: 0051), je voudrais que la colonne B affiche directement le nom client, et inversement.

exemple base de données:
A1: 001 B1: Mr dupont C1: R1, R2
A2: 002 B2: Mme laroche C2: R3
A3: 003 B3: Mr martin C3: R4, R5

donc je voudrais des listes déroulantes pour chaque colonne. Pour la 1ere, lorsque je selectionne "002", il faut que la colonne B m'affiche automatiquement "Mme laroche", et que la liste déroulante en C me propose "R3"

A l'inverse, si je choisit "Mr Martin" dans la liste déroulante en B, il faut que A affiche automatiquement 003, et que la liste déroulante en C me propose "R4" ou "R5".

(j'espère que c'est compréhensible)


par conséquent, est-ce possible? si oui, comment faire?
d'avance merci beaucoup.

5 réponses

LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 337
12 juin 2008 à 12:59
bonjour

ta description correspond à l'utilisation des filtres automatiques.

Inscrit en 1ère ligne le libellé des données (ex A1 --> code client , ...)
Sélectionne A1 et va dans le menu Données --> Filtrer --> Filtre automatique
Ton problème est ainsi résolu (sauf si ta base possède plus de 1000 lignes car les options de filtre sont limitées)

à plus
0
arf j'ai déjà un filtre, j'ai du mal exprimer mon problème.

bon on laisse tomber l'idée de la correspondance "code client" avec "nom client".

en fait, ce que je voudrais, c'est:
lorsque je crée une ligne avec un nom client existant, cela me propose uniquement les références client enregistrées

exemple: dans l'exemple écrit précédemment, j'ai Mr dupont, Mme laroche et Mr martin qui ont déjà commandé chez moi.
ce que je voudrais: si je rentre une nouvelle commande sous le nom de Mr martin, la colonne C doit me proposer uniquement "R4" ou "R5".
En gros, si je fixe Mr martin sur une nouvelle ligne (ex: B7), il faut que la liste déroulante en C7 me propose soit R4, soit R5, et exclue r1,r2,r3 (qui ne correspondent pas à Mr martin).

suis-je clair? j'en ai pas l'impression :'(
merci
0
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 337
13 juin 2008 à 09:04
bonjour

voici une première version non finalisée. Seule les 2 premières colonnes sont fonctionnelles.
https://www.cjoint.com/?gnjd7b6EW5
suite la semaine prochaine si cela te conviens

à plus
0
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
13 juin 2008 à 09:59
Bonjour.

Regarde ici post 3 et 8.

A ton écoute.

Cordialement.
0
Bonjour chtilou, LePierre, le forum

merci pour vos réponses.
En fait j'ai réussi à contourner le problème avec des fonctions "=Indirect" (un peu long et ennuyeux)

Mon souhait maintenant:
lorsque je sélectionne un nom client dans ma liste déroulante pour une nouvelle ligne, cela me mette directement le bon code client en A

exemple:
en B7 je choisit Mme laroche, il me faudrait une fonction qui inscrive "002" en A7

encore merci pour votre aide (enfin surtout celui de scorpio pour le moment :D)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
13 juin 2008 à 17:21
Bonsoir
un petit nouveau sur la ligne.
Ce que vous cherchez semble pouvoir être résolu avec une formule RECHERCHEV
Si vos données de base sont dans un tableau, mettons par exemple nom des clients en colonne A et code en colonne B, sur Feuil,lignes utilisées de 1à00:
sur une autre feuille le tableau à remplir:
En colonne A nom des clients à partir de A2
En colonne B les codes à trouver
En B2 la formule à descendre:
=SI(A2="";"";(RECHERCHEV(A2;Feuil1!A1:B100;2;0)
ca devrait suffire
(recherchev cherche dans la 1° colonne du champ et ressort la correspondance dans ma colonne indiquée par son N° dans le champ (2 dans l'exemple)
CRDLMNT
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
13 juin 2008 à 17:32
Re
Je complète:
La solution précédente exigeant que le nom du client soit dans la première colonne du champ, ce qui n'est peut être pas votre cas, je vous en propose une autre sur l'exemple suivant:
Données de base Feuil1, ligne 1 à 100 colonne A à F /code client en colonne B / nom client en colonne C:
La formule sur B2 feuil2!
=INDEX(Feuil1!;A1:F100;EQUIV(A2;Feuil1!C1:C100;0);2)

cette formule
dans la partie INDEX, sélectionne le champ de données
dans la partie EQUIV, dans l'ordre
_Enregistre la valeur à chercher
_Sélectionne la colonne du champ où elle doit la trouver
_Explique par un code à Excel la façon de chercher (ça c'est le 0)
_Donne le n° de colonne du champ ou il faut trouver la valeur correspondante (la partie ;2) en fin de formule soit colonne B)
L'ensemble est ajustable à n'importe quelles colonnes du champ sous réserve que la hauteur des champs (N° de lignes)et colonnes soient les mêmes dans EQUIV et INDEX

Bien entendu, vous pouvez nommer les champs pour éviter les inscriptions de limites et de feuille dans les formules.
C'est plus simple et plus clair

CRDLMNT
_
0
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 337
14 juin 2008 à 21:02
bonjour

pour répondre au souhait :
lorsque je sélectionne un nom client dans ma liste déroulante pour une nouvelle ligne, cela me mette directement le bon code client en A 

voici un code fonctionnel qu'il faudra améliorer (gestion des références à réaliser en cas d'ajout)
https://www.cjoint.com/?gova1vqrhx

à plus
0
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 337 > LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012
15 juin 2008 à 10:16
bonjour

voici une nouvelle version qui annule et remplace la précédente : https://www.cjoint.com/?gpkqehXNtx
j'espère que cela conviendra

à plus
0
sakalyn > LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012
16 juin 2008 à 10:30
bonjour,

cette macro est parfaite. Maintenant, comment puis-je l'adapter à ma base de données (plus complète)? Est-il possible de copier ta macro dans ma base? merci de m'indiquer comment procéder, je suis un newbie :p

cordialement
0
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 337 > sakalyn
16 juin 2008 à 14:41
bonjour

Le plus simple pour toi et de copier tes données dans le fichier ci joint : https://www.cjoint.com/?gqoMTBCWAB
(j'ai corrigé quelques bugs) car il y a du code dans chaque feuille.

Commence par effacer les données de l'onglet "BaseDonnées"
Ensuite va mettre à jour l'onglet "Référence" avec tes nouvelles données.
(Lorsque tu quittes cet onglet, il y a mise à jour automatique des références)

Maintenant, tu peux copier tes données dans l'onglet "BaseDonnées".
Ensuite viens sur l'onglet "Référence" et reviens sur l'onglet "BaseDonnées" pour refaire la mise à jour des listes déroulantes en colonnes A et B.

Dis moi si tu rencontre des problèmes

à plus
0