Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

DropDowns en cascade

  • Initiateur de la discussion Initiateur de la discussion IP
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

I

IP

Guest
Salut,

Je cherche à modifier le contenu d'une DropDowns (2) en fonction du choix sur une autre DropDowns (1).
En fait, le contenu de (2) est une plage d'une colonne. Le numéro de colonne varie selon le choix de (1).

Le problème, c'est qu'une plage d'entrée de DropDowns se défini ainsi : selection.ListFillRange = '$A$1:$A$7' et je ne vois pas trop comment faire pour y modifier le numéro de colonne (en lettre).

Donc, si quelqu'un a une idée ou une autre méthode, merci d'avance...
 
Bonjour IP, le Forum

Un de tes problèmes est l'utilisation de 'ListFillRange' (pour ceux/celles qui ne connaissent pas est l'équivalent de 'RowSource' pour un ActiveX 'ListBox' ou 'ComboBox' de UserForm...)

En Effet, ListFillRange est cet équivalent pour un OLEObject placé directement sur une Feuille Excel et tout comme 'RowSource', ce n'est pas 'maléable'...

Je te conseille de procéder plutôt à une initialisation des données par la méthode 'AddItem' qui sera sûrement plus appropriée pour faire des Cascades de données entre tes ComboBox...

Un exemple tout simple basé sur deux ComboBox, code à placer dans le Private Module de la Feuille en Question :

Code:
Option Explicit

Private Sub Worksheet_Activate()
    With Me.ComboBox1
        .AddItem 'Toto1'
        .AddItem 'Toto2'
        .AddItem 'Toto3'
    End With
End Sub

Private Sub ComboBox1_Change()
Dim Colonne As String
Dim Ligne As Byte

    Select Case Me.ComboBox1.Value
        Case 'Toto1'
            Colonne = 'B'
        Case 'Toto2'
            Colonne = 'C'
        Case 'Toto3'
            Colonne = 'D'
        Case Else: Exit Sub
    End Select
    
    With Me.ComboBox2
        .Clear
        For Ligne = 1 To 7
        .AddItem Range(Colonne & Ligne).Value
        Next
    End With

End Sub

Bon Appétit
@+Thierry
 
Heu, marche pô ! :ermm:
En fait, tu m'a mis en exemple des ComboBox alors que j'ai des DropDowns.

Pour rajouter des éléments dans une DropDowns, la fonction additem marche bien.
Par contre, impossible de la vider par la fonction Clear ou la fonction Remove sur les items.
(cela marche nikel sur les comboBox)

Doit y avoir un truc que je n'ai pas compris :S

Si quelqu'un peut m'expliquer le schmilblick !

Merci d'avance ! 🙂
 
Bonsoir IP, le Forum

Rapidos depuis le WIFI d'un café...

Peux-tu m'expliquer ce que tu appelles une 'DropDown' liste ?

De quelle bar (oups non c'est moi qui suis dans un bar lol) je veux dire de quelle Barre d'Outils provient-elle ?


Bonne Soirée
@+Thierry
 
Salut,

Je suis sous Office X Mac.

Le bouton a été créé a partir de la barre de Formulaire, en insérant une 'zone de liste modifiable'.
Quand j'enregistre cette manipulation en macro, il me dit :ActiveSheet.DropDowns.Add(21, 149, 74, 19).Select

J'en ai donc déduit que 'DropDowns' était le nom du bouton créé, et c'est comme cela que je peux y rajouter des éléments
:unsure:

Mais ensuite, j'arrive pas à faire grand chose avec en VB...

Voili-Voila...

PS : en fait, c'est pour une nouvelle feuille de calcul de jeux de tarot (plus pointu que celle existante sur ce forum). Je laisserai ensuite cette feuille au téléchargement.
 
Salut,

Concernant les Combobox de la boite à outils Controles, cette boite se trouve sur les UserForm.
En fait, je n'ai jamais pris le temps d'évoluer du VB d'Office 97 vers le VB d'Office X et j'utilise toujours d'anciennes fonctions 🙁

Si jamais mon problème n'a pas de solution, il va falloir que je me mette aux Userforms d'Office X.

Le seul défaut : ce n'est plus compatible avec les vieilles versions d'office....
:huh:

@+
 
re Bonsoir IP, Salut Michel

IP normalement les ActiveX de la barre d'outils contrôles sont disponibles depuis Excel 97...

Merci sinon Michel...

Mais là où je ne comprends plus c'est que on parle bien de la même chose...

Bon là suis en Tchat et au Bar alors ça fait bcp... Je repasse demain

Bonne Nuit
@+Thierry
 
rebonsoir à tous les deux

IP , les differences de type d'objet est peut etre lié à ta version Mac

la ligne ci dessous supprime tous les items d'une dropDown formulaires (adaptes le nom en fonction de ton projet )

....
Feuil1.Shapes('Zone combinée 1').ControlFormat.RemoveAllItems
...


bonne soiree
MichelXld
 
Bonsoir,

Là, je viens de trouver la fonction RemoveItem qui devrait, avec AddItem, faire mon bonheur. Je vous tient au courant si jamais cela ne me convient pas, par la suite.

merci encore :lol:
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
561
Réponses
40
Affichages
2 K
Réponses
1
Affichages
115
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…