Menu déroulant dynamique

Accueil – Le CFO masqué Forums VBA Menu déroulant dynamique

  • Ce sujet contient 4 réponses, 3 participants et a été mis à jour pour la dernière fois par lucasmembile, le il y a 2 mois et 1 semaine.
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Articles
  • #75856
    Pimpin
    Participant

    Bonjour,

    Je voudrais créer un menu déroulant dynamique pour ma TEXTBOX1.
    J’ai pu faire un menu déroulant mais il ne s’arrête pas à la dernière
    valeur de mon tableau, et me laisse des espaces blancs.
    Merci pour votre aide.

    #76028
    Lionel
    Participant

    Salut Pimpin,
    Ce n’est pas un Combobox que tu veux remplir. Voici un code pour le remplir avec les données de la colonnes A en évitant les doublons.

    Private Sub UserForm_Initialize()
        Dim j As Integer
        
        'Récupère les données de la colonne A...
        For j = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row
            ComboBox1 = Sheets("Feuil1").Range("A" & j)
            '...et filtre les doublons
            If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("A" & j)
        Next j
    End Sub

    Pour te perfectionner voici un peu de lecture : https://silkyroad.developpez.com/VBA/ControlesUserForm/#LI

    Attachments:
    You must be logged in to view attached files.
    #76112
    Pimpin
    Participant

    Re

    J’ai commencé à taper ta ligne :

    Private Sub UserForm_Initialize()

    Dim j As Integer

    for j=2 to sheets(“Feuil1”).range(“a65536).end(xlup).row

    Et ça m’a affiché Erreur de syntaxe ?

    Merci pour tes lumières…

    #76130
    Lionel
    Participant

    Je vois que tu as déjà oublié un guillemet. Le plus simple est de faire un copier-coller du code et ensuite, de modifier en fonction de tes données ; colonne, ligne…

    Private Sub UserForm_Initialize()
        Dim j As Integer
        
        'Récupère les données de la colonne A...
        For j = 2 To Sheets("Feuil1").Range("A1").End(xlDown).Row
            ComboBox1 = Sheets("Feuil1").Range("A" & j)
            '...et filtre les doublons
            If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("A" & j)
        Next j
    End Sub
    #137754
    lucasmembile
    Participant

    Bonjour La team,
    J’espère que vous allez bien….
    J’aimerai votre aide pour créer un menu dynamique en cascade.
    Le menu doit pouvoir s’identifier comme une catégorie qui renferme en lui des sous-catégories sachant que toutes les sous-catégories sont contenues dans chaque feuille distincte du classeur.

    Une illustration de l’aperçu :

    . Clients
    – Tableau de Bord
    – Créances
    – Règlements
    – Relances
    – Paramètres

    . Fournisseurs
    – Tableau de Bord
    – Dettes
    – Règlements
    – Paramètres

    J’aimerai également, que la macro puisse colorier la catégorie sélectionnée au moment où le curseur se pose dessus et décline ensuite l’ensemble les sous-catégories et dont la couleur s’affichera également lorsque je met le curseur dessus. De plus j’aimerai que le menu déroulant disparaît lorsque je retire la souris dessus.

    Je vous envoie un fichier attaché question de visualiser ce que je raconte, je l’ai capturé sur un site internet.

    Merci d’avance.

    Attachments:
    You must be logged in to view attached files.
5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.