Listes déroulants en cascade et conditionnelles

D277

XLDnaute Nouveau
Bonsoir à tous,

Je cherche à créer un formulaire contenant plusieurs choix venant de menus déroulants. J'ai joint une ébauche de ce formulaire mais je vais expliquer ce que je souhaite réaliser :

Tout d'abord, dans un menu déroulant, je choisis un chiffre entre 1 et 9. En fonction de ce chiffre, un texte Essai n°... apparaîtrai à divers emplacements avec pour chaque essai, un menu déroulant récapitulant tous les essais possibles.

En fonction des essais choisis, d'autres menus déroulants avec les caractéristiques de ces derniers apparaîtraient en-dessous. Une question : Est-il possible de faire apparaître un menu déroulant pour chacun de ces essais différents (acier et bois) si il s'avère qu'ils ont une caractéristique en commun (par exemple la provenance) ?

Voilà, j'ai parcouru divers forums et trouver quelques pistes mais rien de concret alors je me demande si ce que je souhaite faire est possible ou non ? En tout cas sous excel.

Merci d'avance pour l'aide que vous pourrez m'apporter.

Bonne soirée

D277
 

Pièces jointes

  • Beta Formulaire .xls
    29.5 KB · Affichages: 27

Dranreb

XLDnaute Barbatruc
Re : Listes déroulants en cascade et conditionnelles

Bonsoir.

À mon avis le mieux serait de faire un tableau répertoriant toutes les combinaisons de critères possibles et de l'interroger par un Userform muni d'un ComboBox pour chaque critère. Ou avec un filtre automatique tout simplement.
 

D277

XLDnaute Nouveau
Re : Listes déroulants en cascade et conditionnelles

Bonsoir,

Tout d'abord, merci de m'avoir répondu.
Si j'ai bien compris, je répertorie tous les critères dans un tableau. Est-ce qu'il serait possible de mettre ce tableau sur la feuil2 sachant que le formulaire n'occupera que la feuil1 ?

Puis ensuite un Userform plus un ComboBox. Peux-tu m'expliquer rapidement comment procéder ou peut-être as-tu des sources d'informations à me transmettre pour mieux comprendre et réaliser ton idée ? Je ne suis pas un expert du VBA.

Pour ce qui est du filtre automatique, par contre je ne comprends pas le fonctionnement.

Bonne soirée

D277
 

Dranreb

XLDnaute Barbatruc
Re : Listes déroulants en cascade et conditionnelles

je répertorie tous les critères dans un tableau
Non, toutes les combinaisons de critères avec une colonne pour chacun. Il faut répéter sur chaque ligne ceux qui ne changent pas par rapport à la ligne précédente.
sachant que le formulaire n'occupera que la feuil1
Un Userform n'occupe pas de feuille: il s'affiche par dessus ce qu'il y a quand on appelle sa méthode Show, c'est tout.
Puis ensuite un Userform plus un ComboBox.
Autant de ComboBox qu'il y a de colonnes critères dans la base des combinaisons valides.
comment procéder
Ça commence par Insertion, Userform dans VBA.
Pour ce qui est du filtre automatique
Oui, ça pourrait suffire, après tout, pour n'afficher que les lignes qui ont certaines valeurs dans certaines colonnes. Mais sinon, j'ai des modules très sophistiqués qui peuvent gérer très facilement des ComboBox liés (choix en ordre quelconque) ou en cascades (ordre des choix prédéterminé) prenant les contenus de leurs propriétés List dans différentes colonnes d'un même tableau.
 

D277

XLDnaute Nouveau
Re : Listes déroulants en cascade et conditionnelles

Bonjour,

Dsl de répondre avec autant de retard.
Les filtres automatiques ne conviennent pas à ce dont j'ai besoin et j'ai creusé l'idée des userforms.
J'ai joint un autre fichier avec une approche peut-être plus simple que ce qui était prévu initialement, que ce soit dans la réalisation, ou bien même dans le code VBA.

Le but serait de créer tous les menus déroulants et de séparer chaque essai (acier,....). Cette feuille serait par la suite masquée.
Dans la seconde feuille, se trouve 1 bouton faisant appel à une boîte de dialogue que j'ai brièvement dessiné. Cette commande offrirait la possibilité de choisir un unique essai (ex : bois), de confirmer et cela copierait/collerait la plage correspondante à cet essai à partir de la feuille masquée.
Ensuite, si on souhaite faire un autre essai, on reprend la manip, bien sûr en indiquant dans le code que l'autre essai se colle une ligne ou 2 en-dessous du précédent, etc...
Qu'en penses-tu ?
Pour la réalisation de la boîte de dialogue à choix unique, faut-il passer par un userform ?

Merci d'avance

D277
 

Pièces jointes

  • Beta Formulaire .xlsx
    13.6 KB · Affichages: 23

D277

XLDnaute Nouveau
Re : Listes déroulants en cascade et conditionnelles

Bonjour,

J'ai complètement abandonné l'idée de lier toutes les listes déroulantes entre elles.
J'ai donc créer sur la feuille "Listes" tous les renseignements avec les listes déroulantes. Jusque là, facile.
Ensuite, via un userform, j'offre la possibilité de choisir un essai et par macro, la plage correspondante à l'essai choisi se copie/colle sur la feuille "Formulaire". Mon code pour l'instant lié à un optionbutton :

Code:
Private Sub OptionButton1_Click()		
    Range("B12: D18").Select		
    Selection.Copy		
    Sheets("Formulaire").Select		
    ActiveSheet.Paste		
End Sub

Le truc, c'est que j'aimerai bidouiller le code pour que le premier essai choisi se mette disons dans la colonne B, à la rigueur en cellule B10. Et que les autres essais choisis (même si ils sont équivalents au premier choisi ; par exemple 2 fois "Acier") se mettent en-dessous alignés avec le précédent dans la colonne B et si possible en laissant une ligne de décalage pour laisser un peu d'espace.
J'ai cette bribe de code :

Code:
Sheets("Formulaire").Select
    Range("B65000").Select
    Selection.End(xlUp).Select

Mais je n'arrive pas à obtenir ce que je voudrais. Y-a-t-il moyen d'arranger le code ?
Merci.
Bonne journée.

D277
 

Pièces jointes

  • Beta Formulaire .xlsm
    21.5 KB · Affichages: 18
  • Beta Formulaire .xlsm
    21.5 KB · Affichages: 25
  • Beta Formulaire .xlsm
    21.5 KB · Affichages: 25
Dernière édition:

Discussions similaires

Réponses
1
Affichages
247
Réponses
28
Affichages
1 K
Réponses
8
Affichages
332

Membres actuellement en ligne

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi