Base de données et listes en cascade
Bonjour à tous,
Je m'appelle Sébastien et suis relativement novice sur Excel 2007-2010. C'est d'ailleurs mon premier post sur le forum.
Je souhaiterais solliciter votre aide pour la construction de tableaux à partir d'une base de données telle que présentée dans le fichier ci-joint.
Cette base de donnée se caractérise par:
- l'utilisation de plusieurs langues
- différents niveaux de listes en cascade imbriqués entre elles.
J'ai déjà parcouru le forum concernant les listes en cascade mais n'ai pas réussi à trouver ce que je cherchais.
Mes problèmes sont en effet les suivants:
- la base de données étant très importante, bâtir des noms de champ pour chaque liste me semble difficile.
- J'aimerais une automatisation des champs sélectionnés dans une liste en fonction de la langue. Par exemple, après avoir créer mon tableau en français, j'aimerais qu'en sélectionnant "anglais" dans la liste "langue", le tableau se mette à jour automatiquement en anglais. Actuellement, il me faut sélectionner de nouveau toutes les cases.
Je fournis plus de détail dans le fichier Excel ci-joint.
Ne connaissant pas VBA, j'aimerais dans la mesure possible une solution sans VBA. Sinon, étant celui qui réalise la base de données, celle-ci est modifiable pour accueillir toute modification qui rendrait la tâche de réalisation du tableau plus facile.
Je vous remercie par avance de toute aide que vous pourrez m'apporter pour résoudre ce problème contre lequel je bute depuis quelque temps.
En attendant avec impatience vos précieux conseils
Bonjour,
Pour l'instant, ton projet me paraît encore nébuleux. Pas tant le problème du choix de langue dans la mesure où cela implique simplement une déclinaison de ta base en autant de bases organisées identiquement qu'il y a de langues. Donc ce choix ne ferait qu'opérer une "translation" d'une base à une autre.
Pour le reste, un système de listes-cascade est constituée par une série de choix successifs la possibilité de chaque choix dépendant des précédents. Il faudrait que cette succession soit précisément définie pour qu'on y voit un peu plus clair.
On ne voit pas bien non plus comment tu vas l'utiliser : à l'issue d'une série de choix, qu'est-ce qui doit s'afficher et sous quelle forme. Ces deux aspects principaux conditionnent l'organisation de la base...
Tu n'éviteras pas un minimum de VBA pour assurer un confort minimal d'utilisation. Au moins pour la mise à jour de la base, de façon qu'à la suite d'ajouts ou suppressions d'éléments les différentes listes soient automatiquement mises à jour (manuellement ce serait très fastidieux). Egalement pour assurer la cohérence de l'affichage lors de choix fait dans le désordre (en modifiant un choix de 1er niveau, les choix déjà fait aux niveaux 2, 3... sur la base d'une option différente restent affichés sans réintervention, une réinitialisation automatique assure dans ce cas un confort d'utilisation indéniable).
Cordialement et bon courage.
(Pas compris pourquoi le message s'est dupliqué !)
Bonjour,
Merci de ta réponse rapide MFerrand ainsi que pour toutes tes remarques.
Si j'ai bien compris le sens de ta remarque concernant la gestion des langues, la réplication de la base de données en autant de langues est inévitable. Étant donné qu'à terme, la base de données fera plusieurs centaines de milliers de lignes, j'aurais aimé dans la mesure du possible ne construire qu'une seule base de données avec un code unique pour contenir mes valeurs et une autre base de données pour la correspondance code-langues.
Est-ce que tu pourrais me confirmer le caractère inévitable de cette réplication?
Si c'est le cas, je considérerais mon problème comme résolu.
Merci encore pour ton aide
Cordialement
Tu as 2 aspects dans ta base de données (à partir des éléments que tu indiques au départ :
- La partie qui va alimenter les listes de choix : là en principe, ce que tu mets à jour, c'est la base 'globale' où chaque colonne (ou champ) correspond à une liste de choix (chaque ligne est constituée d'une série d'éléments de choix 1 à choix n, hormis le dernier champ où les éléments peuvent éventuellement être uniques, il sont répétés autant de fois que nécessaire dans les champs qui précèdent). C'est à partir de cette base que sont extraites les listes de choix (il est souhaitable que cela se fasse automatiquement (filtrage et extraction par VBA), tant pour la fiabilité que la pénibilité de la tâche.
- La base d'informations que tu souhaites afficher à partir de choix... Lorsque peu volumineux, cela peut se positionner conjointement, mais dans ton cas il me semble préférable de séparer les deux.
Le problème de langue joue pour les deux aspects : tu vas afficher les listes de choix dans différentes langues, donc il va falloir autant de listes sur lesquelles on puisse pointer par décalage à partir d'un choix de langue, et pour les infos, ce sera sensiblement la même chose. Les données que tu affiches au bout du compte, il faudra bien qu'elles soient quelque part et accessibles.
Quelle que soient la façon dont tu les positionnes, toute information que tu voudras afficher devra être présente. Si tu affiches la même info en 5 langues, il faudra bien que tu aies les 5 versions dans ta base.
Cordialement.
Merci MFerrand pour ta réponse rapide
Je vais retravailler mon fichier Excel en me basant sur tes conseils.
En conséquence, je ferme la présente discussion.
Je reviendrai présenter ma solution pour ma base de données ou ouvrirai une nouvelle discussion dans le cas d'une nouvelle question, cette fois-ci plus précise.
Bien cordialement
Bonne continuation.
A+