Bonjour,
J'ai un problème persistant depuis 2 semaines.
Étant débutant dans le monde de la programmation, j'ai chercher un peu partout main Rien.

Veuillez m'aider svp.

Alors J'ai une liste déroulante comportant des virgules issue de ma BD SQL SERVER et j'applique une formule RechercheV pour avoir l'identifiant correspondant de chaque éléments de la liste.
Cependant, le résultat obtenue pour la liste déroulante n'est pas correcte certainement dû à ma concaténation faite pour le chargement de la liste déroulante.
Ainsi, la valeur de la RechercheV ne s'affiche pas car n'ayant pas l'élément de la liste exacte.

ci contre un exemple de 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
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A50")) Is Nothing Then
            If Not Target.Address = "$A$1" Then
                sql = "SELECT * FROM TABLE_AVEC_VIRGULE " 
                Set rec = New Recordset
 
                rec.Open (sql), cn, adUseClient
                If rec.RecordCount > 0 Then
                    listeElement = ""
                    rec.MoveFirst
 
                    For i = 1 To rec.RecordCount
                        If rec!Libelle <> "" Then
                            '=== Probleme ici ==='
                            listeElement = listeElement & "," & rec!Libelle
                        End If
                        rec.MoveNext
                    Next i
                    With Range("A" & ligne).Validation
                        .Delete
                        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=listeElement
                    End With
                Else
                    MsgBox "Pas d'éléments dans la table", _
                    vbInformation, "Hey"
                    With Range("A" & ligne).Validation
                        .Delete
                    End With
                End If
                rec.Close
                cn.Close
            End If
        End If
End Sub
Ps: Je veux adopter cette méthode car derrière je dois gérer l'intégrité de la liste par rapport à une autre.

Merci d'avance de votre aide.


Version : XL 2010