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

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 !

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

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
 
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...
 
- 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

Discussions similaires

Réponses
7
Affichages
106
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
79
Réponses
3
Affichages
537
Réponses
4
Affichages
362
Réponses
3
Affichages
599
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
503
Retour