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

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:

laurent950

XLDnaute Barbatruc
Re,

ici Dim TabRes() As String
Paracerque Public Sub GET_GROUPE_GESTION_CIBLE(ByRef strQ As String)

Pour ByRef et ByVal : Poste #25 @Dranreb jusqu'au poste #30 (J'ai écrit quelques exemples)
Lien : Propriétés d"une classe | Page 2 | Excel-Downloads (excel-downloads.com)

VB:
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 String
    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

Public Sub GET_GROUPE_GESTION_CIBLE(ByRef strQ As String)
    Dim cnn_Pegase As ADODB.Connection 'Connexion Pegase
    Dim RECSET As New ADODB.Recordset
        Call CONNEXION_PEG("select", "test", "PEG")
    RECSET.Open "select serv.lb_long||' (AT: '||pers.s_nom||' '||pers.s_prenom||')' as groupecible from db_tiers as ti, dr_collaborateur_tiers cp,db_collaborateur col,db_personne pers,dr_service_collaborateur sc,db_service_compagnie serv" & _
                " where ti.CD_TIERS='" & strQ & "' ti.is_tiers=cp.is_tiers and cp.is_collaborateur = col.is_collaborateur and col.is_personne = pers.is_personne and col.is_collaborateur = sc.is_collaborateur and sc.is_service_compagnie = serv.is_service_compagnie", cnn_Pegase, adOpenDynamic, adLockBatchOptimistic
    If Not RECSET.EOF Then
        Worksheets("1 - Feuille de Suivi Commercial").Range("GET_GROUPE_GESTION_CIBLE").Value = RECSET.Fields("groupecible").Value
    Else
        Worksheets("1 - Feuille de Suivi Commercial").Range("GET_GROUPE_GESTION_CIBLE").Value = "Inconnu"
    End If
    RECSET.Close
    Call DECONNEXION_PEG
End Sub
 
Dernière édition:

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Merci ! C'est beaucoup mieux maintenant! Par contre j'ai une erreur de connexion.
 

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour,
J’ai remarqué que je reçois un espace à droite dans la Tab_Res, par conséquent ma requête ne marche pas. Est-ce que vous connaissez une fonction VBA qui supprime des espaces ? Merci !
 

Discussions similaires

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