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

Bonsoir le fil, StanSigma

Pas sûr d'avoir tout compris
Donc une suggestion en passant (en passant par Données/Validation)
VB:
Sub TestDValidation()
Dim i&, j&
If ActiveCell.Address = "$C$2" Then Exit Sub
j = -1
For i = 1 To [C2]
    With ActiveCell.Offset(j + i).Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="André,Arnaud,Jacques,Jean,Marcel,Michel,Patrice,Patrick,Thierry"
    End With
    j = j + 1
    Next i
End Sub

EDITION: Bonsoir sylvanu
 
Dernière édition:
Bonjour Staple 😉, Re StanSigma,
En faisant clic droit/format de controle sur la lsite déroulante. On précise alors la cellule liée désirée.
Liste.jpg
 
Bonsoir le fil

Pas sûr d'avoir tout compris
Donc une suggestion en passant (en passant par Données/Validation)
VB:
Sub TestDValidation()
Dim i&, j&
If ActiveCell.Address = "$C$2" Then Exit Sub
j = -1
For i = 1 To [C2]
    With ActiveCell.Offset(j + i).Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="André,Arnaud,Jacques,Jean,Marcel,Michel,Patrice,Patrick,Thierry"
    End With
    j = j + 1
    Next i
End Sub

EDITION: Bonsoir sylvanu

Bonjour,
Je ne suis pas sur de comprendre ton code, l'idée est d'ajouter ceci après mon code pour tester chaque liste déroulante et leur cellule liée ?
Peux-tu m'éclairer ?
Merci d'avance
Stan
 
Re

StanSigma
Ouf, je respire (car j'étais tout bouleversifié en dedans de moi en pensant devenir invisible)
Pour revenir à mon code, celui-ci n'insère pas de contrôle mais passe par Données/Validation)
Testes le sur une feuille vierge en mettant un nombre dans la cellule C2
puis sélectionne par exemple la cellule F2 et lance la macro.
Puis sélectionne la cellule F2 ou d'autres en colonne F.
 
Vraiment désolé Staple. Le #2 répondait à la première question de StanSigma .
Le post #6 à la question du post #4.
Je suppose toujours que la question initiale est basé sur un extrait minimum, et je réponds stricto senso à la question.
En plus les post se "croisenr" et on a du mal à suivre le fil.
 
- 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
163
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Réponses
3
Affichages
673
Réponses
2
Affichages
153
Retour