Bonjour,
Je cherche à récupérer les valeurs sélectionner dans une liste à choix multiples pour pouvoir les placer en critère d'une requête via un QueryDef.Parameter.
Cette requête est ensuite exporter sur Excel.
Voici mon code:


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
55
56
57
Sub Exportation(requete As String, fichier As String, onglet As String)
 
 Dim t As DAO.Recordset
 Dim qdf As DAO.QueryDef
 Dim db As DAO.Database
 
 Dim i As Integer
 Dim s As String, NumChamp As Long, ligne As Long
 
 
ligne = 1
 Set db = CurrentDb
 Set qdf = db.QueryDefs(requete)  
 
     Dim VarLr As Variant
     Dim strSQL As String
 
       i = 0
      For Each VarLr In Me.Liste19.ItemsSelected
     If i = 0 Then
       strSQL = Me.Liste19.ItemData(VarLr)
         Else
      'strSQL = strSQL & "' or Type_Visite ='" & Me.Liste19.ItemData(VarLr)
           strSQL = strSQL & "' ; '" & Me.Liste19.ItemData(VarLr)
         End If
         i = i + 1
    Next VarLr
      requeteBis = "SELECT MaxDeDateProchaineVisite, No_Malade, Nom_Malade,Adresse1_Vie,Code_Postal_Vie,Bureau_Distributeur_Vie,Zone_Géographique,CodeITV,Type_Visite, En_Vacances,Hospitalisé,StatutINJ, StatutRDV,StatutVisite,VAD,Forfait_Soins FROM AffichageVisite2"
                    suiterequetebis = " WHERE  Type_Visite In ('" & strSQL & "');"
                    requeteBis = requeteBis & suiterequetebis
                    Set qdf = db.QueryDefs(requeteBis)
 
 Set t = qdf.OpenRecordset  'ouvre la requete
 'Set t = db.OpenRecordset(requeteBis)
 Do Until t.EOF
ligne = ligne + 1               'ligne suivante dans la feuille Excel
   For NumChamp = 0 To 15        'pour chaque colonne de la requete
   s = t(NumChamp)
   If s <> "" Then
   xlW.Sheets(onglet).Cells(ligne, NumChamp + 1) = s
        'recupération des données au format Texte
   ElseIf IsNull(s) Then
 
   xlW.Sheets(onglet).Cells(ligne, NumChamp + 1) = ""
   End If
 
   Next NumChamp
   t.MoveNext                    'enregistrement suivant
  Loop
  t.Close
 Set t = Nothing
 Set qdf = Nothing
 Set db = Nothing
 
Dim x As Integer
 
End Sub
Cela fait 2 jours que je cherche... et je n'ai rien trouvé sur les forums qui pourraient m'aider...
Donc n' hésiter pas à me faire part de toutes vos suggestions!