URGENT: liste deroulante excel
sakalyn
-
LePierre Messages postés 249 Statut Membre -
LePierre Messages postés 249 Statut Membre -
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.
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
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
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
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
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
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
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
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)
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)
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
_
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
_
bonjour
pour répondre au souhait :
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
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
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
voici une nouvelle version qui annule et remplace la précédente : https://www.cjoint.com/?gpkqehXNtx
j'espère que cela conviendra
à plus
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
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