Liste déroulante liée à une base de donnée

gruzlor -  
Furtif Messages postés 9956 Statut Contributeur -
Bonjour,

Novice en Excel, je suis confronté à un problème qui me fait rager.

J'ai une feuille qui fait office de base de données et une feuille "Devis". Mon idée est de remplir la base de données et d'intégrer les éléments dans le devis via une liste déroulante.

Lorsque je sélectionne un item de la BD, la totalité de la ligne de mon devis se remplie (Prix, remise...) : Ca, ça fonctionne

Mais lorsque je rajoute un enregistrement à la BD, la formule de remplissage du devis se fausse :

=SI($A9="";"";RECHERCHEV($A9;BD!$B$4:$O$1000;2;FAUX))

La table de matrice de la feuille BD se décale, et le dernier enregistrement de la BD n'est pas pris en compte. Commment toujours avoir une table à la bonne dimension??? (Le O1000 n'est pas très élégant non plus...)

Merci par avance pour votre aide.

A plus
A voir également:

4 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

le mieux est que sélectionnes toute cette zone et que tu la nommes par menu 'insertion / nom / définir'.
Ensuite menu 'données / liste / créer une liste' comme ça ton nom suivra les évolutions de ta liste que tu insères un item ou que tu l'ajoutes à la fin dans la ligne d'insertion *.
Utilises son nom =SI($A9="";"";RECHERCHEV($A9;nom_liste;2;FAUX))
Autre petit truc pour cette formule, remplace 2 par COLONNE() (si tu es en colonne B, sinon +1 ou -1 ou...) comme ça tu pourras faire une recopie incrémentée vers la droite pour les champs suivants.
eric
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

Dans une cellule intermédiaire de ta feuille DEVIS écris cette formule, par exemple en G7 ( à toi de trouver une cellule vide et d'adapter)

="BD!$B$4:$O$"&NBVAL(BD!$B$4:$B$65000)+3

ensuite tu transforme ta formule de RECHERCHEV comme ceci:

=SI($A9="";"";RECHERCHEV($A9;INDIRECT(G7);2;FAUX))

cordialement,

Michel
0
Raymond PENTIER Messages postés 71855 Date d'inscription   Statut Contributeur Dernière intervention   17 388
 
Plus simplement : Pour compléter ta base de données, ne te places jamais avant le premier ni après le dernier enregistrement, mais insère une ligne intercalée (quitte à refaire un tri si tu le juges utile).
Mais de toutes façons il faut appliquer la première recommandation d'eriiic : donner un nom à la BD.
0
Furtif Messages postés 9956 Statut Contributeur 929
 
Exact

- Si tu rajoutes des lignes en dehors de ta zone préalablement définie, elles ne sont pas vues.
- Si tu effaces la première ligne de ta zone définie, tout part en vrille.

Perso, je mets toujours en haut de liste : DEPART, et en bout de liste FIN, et je définis la liste en incluant ces 2 lignes, et toutes les insertions ou suppressions suivantes sont correctement traitées, du moment qu'on ne touche pas à ces 2 ligne extrèmes.

Et c'est vrai qu'il beaucoup plus pratique de nommer sa BD plutôt que de rappeler à chaque fois les coordonnées Lignes/Colonnes. De plus, ça permet de la retrouver facilement avec la touche F5.
0