Affichage dans une combobox

  • Initiateur de la discussion Initiateur de la discussion chris_ij32
  • Date de début Date de début

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 !

C

chris_ij32

Guest
Bonjour,
Dans un formulaire j'ai 2 listes déroulantes, le choix de la première détermine la liste afficher dans la seconde.
La seconde a 3 colonnes et je souhaite les afficher dans ma liste déroulante.
Voici le code de la 1ère liste :
Private Sub ld_service_Change()
Select Case f_gestion_contacts.ld_service.Value
'Attention : sensibles à la casse
'Feuille paramètres : l_services
'ATELIER 'BE 'COMPTA FABR. 'R&D

Case "ATELIER"
f_gestion_contacts.ld_choix_tuteur.RowSource = "l_tut_atelier"
Case "BE"
f_gestion_contacts.ld_choix_tuteur.RowSource = "l_tut_be"
....

End Select
End Sub

Et le code de la seconde :
Private Sub ld_choix_tuteur_Change()

'affichage des prénom et nom dans la liste déroulante
ld_choix_tuteur.Value = ld_choix_tuteur.List(Ligne, 1) & " " & ld_choix_tuteur.List(Ligne, 2)

End Sub
Je vois bien que forcément il va me renvoyer la première ligne de la liste, comment changer le paramètre ligne pour renvoyer le tuteur choisi ? Je suppose qu'il faut travailler avec la propriété listindex mais je ne sais pas comment elle fonctionne.
Merci de m'aider
Chris
 

Pièces jointes

Bonjour,

Les index d'item de listbox ou combobox commence à 0 jusqu'à .count-1
Voir l'aide excel sur ListIndex
Code:
Private Sub ld_choix_tuteur_Change()
    With ld_choix_tuteur
        If .ListIndex > -1 Then
            MsgBox .List(.ListIndex, 1) & " " & .List(.ListIndex, 2)
        End If
    End With
End Sub

A+
 
Re : Re: Affichage dans une combobox

Bonjour,
Merci pour votre réponse.
J'y suis enfin arrivée en passant par des variables je m'en veux de ne pas y avoir pensé avant. Voici le code qui fonctionne enfin !
Private Sub ld_choix_tuteur_Change()

With ld_choix_tuteur
If .ListIndex > -1 Then
id_tuteur = .List(.ListIndex, 0)
prenom_tuteur = .List(.ListIndex, 1)
nom_tuteur = .List(.ListIndex, 2)
v_tuteur = id_tuteur & " " & prenom_tuteur & " " & nom_tuteur
ld_choix_tuteur.Value = v_tuteur
End If
End With

End Sub

Encore merci.
Cordialement
Chris
 
Dernière modification par un modérateur:
Re,

Pas trop compris ce que tu veux exactement!

Si tu veux que ta liste contienne les noms et prénoms dans une seule colonne, avec l'ID du tuteur en colonne 0:

Mettre la propriété ColumnCount à 2
Charger la Combobox comme ceci:
Code:
Private Sub ld_service_Change()
    Dim plg As Range
    Select Case f_gestion_contacts.ld_service.Value
        'Attention : sensibles à la casse
        'Feuille paramètres : l_services
        'ATELIER 'BE 'COMPTA  FABR. 'R&D
    Case "ATELIER"
        Set plg = Range("l_tut_atelier")
    Case "BE"
        Set plg = Range("l_tut_be")
    Case "COMPTA"
        Set plg = Range("l_tut_compta")
    Case "FABR."
        Set plg = Range("l_tut_fabr").Value
    Case "R&D"
        Set plg = Range("l_tut_rd").Value
    End Select
    With f_gestion_contacts.ld_choix_tuteur
        If Not plg Is Nothing Then
            Dim c As Range
            For Each c In plg.Columns(1).Cells
                .AddItem c
                .List(.ListCount - 1, 1) = c(1, 2) & " " & c(1, 3)
            Next
        End If
    End With
End Sub

Récupérer les informations:
Code:
Private Sub ld_choix_tuteur_Change()
    With ld_choix_tuteur
        If .ListIndex > -1 Then
            'affichage des prénom et nom dans la liste déroulante
            MsgBox "Id tuteur: " & .List(.ListIndex, 0) & vbCrLf & "Nom prénom: " & .List(.ListIndex, 1)
        End If
    End With
End Sub

P.S. mon exemple précédent répondait à ta demande de savoir comment utiliser ListIndex.

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
586
Réponses
13
Affichages
738
Réponses
3
Affichages
661
Réponses
7
Affichages
602
Réponses
7
Affichages
2 K
Retour