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éé
Je souhaite récupérer la valeur selectionnée de la listebox dans une cellule voisine comment fait-on ?
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
1ere étape :
2nde étape à partir de la valeur de l'index reconstruire le texte de l'élement sélectionné :
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
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
Partager