XL 2016 Création de Liste Déroulante en VBA

StanSigma

XLDnaute Junior
Bonjour,

Je me permets de demander votre aide car je bloque sur un sujet,
J'ai dans une cellule un nombre X (celui-ci étant le nombre d'employé nécessaire pour une tache).
Je fais apparaître X listes déroulantes.
Exemple : La cellule m'indique 3, j'ai 3 listes déroulantes (qui apparaissent).

Les problèmes sont :
-Les cellules liées sont pour toutes les listes déroulantes la même cellule.
-Je n'ai aucune idée de comment faire pour empêcher les choix en doublons (empêcher de saisir deux fois la même personne)
-Je ne sais pas comment les supprimer automatiquement pour relancer une nouvelle saisie

Voici mon code à l'heure actuelle :

VB:
Sub Affichage_X_Listes()

Dim x As Integer
Dim lien As Integer
Dim a As Integer
Dim b As Integer
Dim c As String


x = ActiveSheet.Cells(2, 3).Value
lien = 1
a = 100
b = 1
c = ("J" & b & ":J" & b)

For i = 1 To x
    ActiveSheet.DropDowns.Add(200, a, 150, 20).Select
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    With Selection
        .ListFillRange = "$K$1:$K$10"
        .LinkedCell = c
        .DropDownLines = 5
        .Display3DShading = False
    End With
a = a + 40

b = b + 1

Next

End Sub

Merci d'avance,
Hate de vous lire !

Cordialement
Stan
 

Pièces jointes

  • Liste.xlsm
    21.7 KB · Affichages: 18

StanSigma

XLDnaute Junior
Bonjour,

Je reviens vers vous pour un dernier point, je n'arrive pas à faire en sorte que la plage de donnée soit variable, c'est à dire que pour la première liste déroulante, la plage est K2:T2, la deuxième K3:T3, la troisième K4:T4 et ainsi jusqu'a X.
Que dois-je mettre au .ListFillRange =
Merci d'avance
VB:
For i = 1 To x
    ActiveSheet.DropDowns.Add(200, a, 150, 20).Select
        With Selection
            .ListFillRange =
            .LinkedCell = "J" & b
            .DropDownLines = 5
            .Display3DShading = False
        End With
    a = a + 40
    b = b + 1
Next
 

StanSigma

XLDnaute Junior
Non, modifiez les textes en colonne I comme je viens de le dire : K2:K11 en I2 puis L2:L10 en I3 etc...
Je ne vois pas du tout ce que cela change mis à part que mon code plus haut ne fonctionnera plus..
Le .offset fonctionne seulement il me prend uniquement la première valeur en K et non les autres, or lorsque je regarde les propriétés de la liste déroulante, la range source est bonne...
 

Discussions similaires

Réponses
6
Affichages
247
Réponses
1
Affichages
168

Statistiques des forums

Discussions
312 234
Messages
2 086 468
Membres
103 226
dernier inscrit
smail12