Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Valeur d'une liste dans la requête ADODB

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour,

J'ai une liste déroulante avec des valeurs. Je voudrais cliquer dans cette liste et afficher la valeur correspondante via une requête ADODB dans une autre cellule.
Mon code pour passer la valeur de la liste dans une variable que je vais utiliser dans la requête est:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address(0, 0) = "E15" Then
GET_GROUPE Split(Target.Value, " - ")(1)
End If
End Sub


J'ai mis Split(Target.Value, " - ")(1) car mes variables se presente comme LMM - 55C, KPCF - 5577 , je dois récupérer les caractères après le tiret. Ce code ne marche pas 🙁
 
Dernière édition:
Re,
Target c'est une variable Objet de Type Range (La valeur ou plage de valeur renvoyé)
On peut stocker le résultat dans une variable tableau comme l'exemple que j'ai posté
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim TabRes() As Variant
If Target.Value = [E15].Value Then
    ReDim TabRes(0 To UBound(Split([Target], ",")))
        For i = LBound(TabRes) To UBound(TabRes)
            TabRes(i) = Split(Split([Target], ",")(i), "-")(1)
        Next i
End If
MsgBox TabRes(0)
MsgBox TabRes(1)
End Sub
cdt
 
Merci, mais je ne comprends pas, comment, par la suite, je peux utiliser cette variable dans ma requête ADODB.
 
Voici mon code complet :
Module dans la feuille :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Not Intersect(Target, Range("C6")) Is Nothing Then
Call CLICK_BTN_INFOS_CONTRAT
End If

Dim TabRes() As Variant
If Target.Value = [E15].Value Then
ReDim TabRes(0 To UBound(Split([Target], ",")))
For i = LBound(TabRes) To UBound(TabRes)
TabRes(i) = Split(Split([Target], ",")(i), "-")(1)
Next i
End If
MsgBox TabRes(0)
GET_GROUPE_GESTION_CIBLE TabRes(0)
End Sub
 
Peut-être j'ai omis une option dans le code 🙁
 
Je n'ai qu'un seul choix dans la liste, du coup je n'ai pas besoin de TabRes(1), n'est-ce pas ?
Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
243
Réponses
4
Affichages
177
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…