Bonjour !

J'ai farfouillé un peu partout sur le forum et je suis tombé sur cet exemple :

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
Sub FillCombo()
 
Dim db As DAO.Database
Dim rec As DAO.Recordset
 
curshname = ActiveSheet.Name
Set db = DAO.OpenDatabase("C:\Temp\MaBase.mdb", False, False)
 
Set rec = db.OpenRecordset("SELECT unChamp FROM MaTable WHERE Machin = 'toto'", DAO.dbOpenSnapshot)
 
For Each sh In ActiveWorkbook.Sheets(curshname).Shapes
    If sh.Type = msoFormControl And sh.Name Like "Drop*" Then
        sh.Select
            Do While Not (rec.EOF)
                Selection.AddItem rec.Fields(0).Value
                rec.MoveNext
            Loop
        Exit For
    End If
Next sh
 
rec.Close
db.Close
 
Set rec = Nothing
Set db = Nothing
 
End Sub
Jusque la pas de soucis. par contre impossible d'éffacer les valeurs contenus dans la liste de même je ne comprend pas comment récuperer la valeur saisis par l'utilisateur.

je ne connaissais pas le code Sh.type ... et selection.additem. je pensais naivement qu'avec un selection.recordcount ou listcount je pourrais récuperer le nombre d'élement présent dans ma liste et par la suite faire une boucle pour y éffacer, de même je pensais a un selection.value pour récuperer la valeur. Mais rien ne marche !

Si quelqu'un pouvait m'expliquer ou me donner un lien qui me permettrait de comprendre je vous en serais tres reconnaissant !