Bonjour,

Je souhaitais dans une feuille placer une listbox qui permetrait de choisir dans une liste "Le_Cas_Produit"
"Le_Cas_Produit" est le nom d'une liste d'une vingtaine de cellules contenant des "nomsStrings complexes, longs pas facile à mémoriser"
J'ai un fichier de quelques centaines de lignes auquel je dois affecter un "Le_Cas_Produit"
J'avais imaginer faire une listebox dans la première cellule et la copier coller dans les cellules se la colonne mais cela ne marchait pas.

J'avais besoin d'automatiser cette action (en code vba sur Excel 2007)
création de listebox et une fois créer
de copier coller dans toutes les cellules de la colonne

J'ai cherché et finalement trouvé,
(J'ai enlevé le mauvais code et laissé le code qui marche)

Le code que j'ai créé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
' ajout des listbox v============================================================================
Sub EssaiListbox3()
Dim Adres As String
Dim sht As Worksheet
Dim RCell As Range
Dim i As Integer
Dim NbCol As Integer
Dim NbLign As Integer
 
Adres = ActiveCell.Address
NbCol = ActiveCell.Column 'pour le test
NbLign = 20 'pour le test
' "Le_Cas_PRODUIT" = nomDefini d'une liste nommée
 
 
' ajout des listbox v============================================================================
Adres = ActiveCell.Address
Set sht = ThisWorkbook.Worksheets("Samples2")
 sht.DropDowns.Select
 sht.DropDowns.Delete 'pour effacer mes précédents essai
 
  Set RCell = Cells(2, NbCol + 1)
  With RCell
    sht.DropDowns.Add(.Left, .Top, .Width, .Height).Name = "Combo Box 3"
 End With
 sht.DropDowns.Select
 
 Stop
 With Selection
        .ListFillRange = "Le_Cas_PRODUIT"
       ' .LinkedCell = Adres
        .DropDownLines = 8
 
    End With
 ' Positionnement sur une cellule;:
 
    Range(Adres).Select
 For i = 3 To NbLign
  Cells(i, NbCol).Select
  sht.DropDowns(1).Select 
 
  With Selection
        .ListFillRange = "Le_Cas_PRODUIT"
    '    .LinkedCell = Adres
        .DropDownLines = 8
 
    End With
    ' la suite envisagée pour copier coller jusqu'à la dernière ligne
RCell.Copy (Cells(i, NbCol + 1))
 
Next i
 
 
End Sub
Je souhaite récupérer la valeur selectionnée de la listebox dans une cellule voisine comment fait-on ?

1ere étape :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Dim RefCellEnCours As Range
Set RefCellEnCours = Cells(i, NbCol + 2)
 
 
 With Selection
        .ListFillRange = "Le_Cas_PRODUIT"
        .LinkedCell = RefCellEnCours.Address
        .DropDownLines = 8
    End With
2nde étape à partir de la valeur de l'index reconstruire le texte de l'élement sélectionné :

dans la cellule à droite de ma "listbox" je tape =INDEX(Le_Cas_PRODUIT;BN6;1)
BN6= adresse emplacement de l'index déposé étape 1 par ma listebox
Remarque Le_Cas_Produit ne comporte qu'une colonne

Merci de votre attention