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

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
164
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
171
Réponses
3
Affichages
673
Réponses
2
Affichages
153
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…