Creation d'une liste déroulante à choix multiple

Bonjour,

Je viens vers vous car j'ai besoin d'un coup de main. Je début en VBA et j’essaie de créer dans mes cellules une liste déroulante avec plusieurs choix possible sélectionnable. J'ai essayé de suivre ce tuto youtube de Joël Garbe "Liste à choix multiple avec contenu variable" (désolé je ne suis pas assez ancien pour pouvoir mettre des liens)

Sauf que dans sont exemple cette personnes a une liste qui est variable selon le choix effectuer dans une autre colonne.

Moi j'aimerai que dans ma feuille "Tache-modele" a partir de C7 apparaisse ma liste. Les données de cette liste sont sur la feuille "methodologieOHB" en A40:A58

15travail-ohb.zip (494.99 Ko)

J'arrive bien a faire affiché la "box" mais je n'arrive pas a avoir les valeurs. Pourriez-vous m'aider svp? Je pense pouvoir me débrouiller pour le reste du tuto.

Question subsidiaire. Cette feuille "tache-modele" vas me servir à créer d'autre feuille grâce a une petit macro. Du coup, est ce que cette liste sera bien aussi dans ces feuilles dupliquées?

Un grand merci d'avance.

Bonjour,

Un test :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (((ActiveCell.Column = 3) And (ActiveCell.Row > 6))) Then
    With Me.ListBox1
        .Clear
        .MultiSelect = fmMultiSelectMulti
        .ListStyle = fmListStyleOption
        .Height = 150
        .Width = 75
        .Top = ActiveCell.Top
        .Left = ActiveCell.Offset(0, 1).Left
        For L = 40 To 58 '<- A modifier ici si ajoute des critères
            .AddItem Worksheets("methodologieOHB ").Cells(L, 1)
        Next L
        .Visible = True
    End With
    On Error Resume Next
    i = 0
    If Worksheets("methodologieOHB").Range("A39").Offset(0, i).End(xlDown).Row = 2 Then
        Me.ListBox1.List = Array(Worksheets("methodologieOHB").Range(Worksheets("methodologieOHB").Range("39").Offset(1, 0), _
        Worksheets("methodologieOHB").Range("A40").Offset(0, i).End(xlDown)).Value, "")
        On Error GoTo 0
    End If
    Else
    Me.ListBox1.Visible = False
End If
End Sub

Mais au final il suffirait, je pense, d’initialiser la listbox lors de la première duplication de votre feuille selon la même méthodologie. Sauf si vous ajoutez des valeurs par la suite (il faudra tout de même changer là où j'ai placé le commentaire).

Pour la question subsidiaire, j'ai testé et la réponse me semble oui.

Cdlt,

Quel type de variable est L du coup?

Bonjour,

En effet si Option Explicit est actif alors L peut être défini comme Byte tant que les valeurs ne sont pas au delà de 255. Donc Dim L As Byte.

Cdlt,

aaaaah parfait ca fonction. Merci du fond du coeur ca faisais une heure que cherchai la solution.

Je vais validé la réponse. Au cas ou, si tu as des tuto VBA généraliste mais un peut plus pousser que sur ce site à me conseiller je suis preneur :)

Rechercher des sujets similaires à "creation liste deroulante choix multiple"