remplir des label après sélection dans un combobox

  • Initiateur de la discussion Initiateur de la discussion Kémi
  • 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 !

Kémi

XLDnaute Nouveau
Bonjour,

Sur une feuille excel, j'ai une liste avec les entêtes suivantes : N° (en cellule A1), Nom (en cellule B1) et Prénom (en cellule C1).

Sur un userform, un combobox me permet de choisir une valeur (issue de la colonne n°) et provoque l'affichage des données de la feuille excel dans des labels (pour l'exemple, label1 correspond aux données de la colonne Nom).

J'ai trouvé sur des forums, plusieurs solutions à mettre dans une procédure combobox_change().

Solution 1 : et elle fonctionne !
label1.caption = cells(combobox1.ListIndex + 2, 2).value

autres solutions : elle génèrent des erreurs ("type 13" ou "impossible de lire la propriété column - argument non valide")

label1.caption = combobox1.column(1)

ou encore

label1.caption = combobox1.List(combobox1.ListIndex)

ou encore

label1.caption = combobox1.column(1, combobox.ListIndex)


Après des recherches dans l'aide d'excel, les trois solutions ci-dessus auraient du fonctionner.

A votre avis, pourquoi ces erreurs ? Avez-vous d'autres solutions ?

Merci d'avance,

Kémi
 
Re : remplir des label après sélection dans un combobox

Bonjour

Bonjour,

Solution 1 : et elle fonctionne !
label1.caption = cells(combobox1.ListIndex + 2, 2).value

autres solutions : elle génèrent des erreurs ("type 13" ou "impossible de lire la propriété column - argument non valide")

label1.caption = combobox1.column(1)

ou encore

label1.caption = combobox1.List(combobox1.ListIndex)

ou encore

label1.caption = combobox1.column(1, combobox.ListIndex)


Kémi
extrait de la documentation VBA

Si vous spécifiez à la fois les valeurs de la colonne et de la ligne, la propriété Column lit ou écrit un élément spécifique.

"Si vous ne spécifiez que la valeur de la colonne, la propriété Column lit ou écrit la colonne spécifiée dans la ligne courante de l'objet. Par exemple, MaListBox.Column (3) lit ou écrit la troisième colonne dans MaListBox. "

La première colonne à la valeur 0
Code à tester

If ComboBox1.TopIndex = -1 Then Exit Sub
label1.caption =ComboBox1.List(ComboBox1.ListIndex) 'donne la valeur affichée dans le combobox.

JP
 
Re : remplir des label après sélection dans un combobox

Bonjour JP14

Je viens de prendre connaissance de ton message.

Tu trouveras ci-joint un petit fichier qui me sert à tester une autre application.

J'arrive bien à afficher dans les labels les éléments correspondant à la sélection dans le textbox. Mais une seule formule fonctionne.

Merci de m'en indiquer d'autres,

Kémi
 
Re : remplir des label après sélection dans un combobox

Salut kemi, Excalibur, jp14, le Forum

Une autre solution

Code:
Option Explicit

Private Sub ComboBox1_Change()
Dim C As Range, i As Byte
Set C = ActiveSheet.Cells.Find(What:=ComboBox1)
If Not C Is Nothing Then
    For i = 4 To 6
        Me.Controls("Label" & i).Caption = C.Offset(0, i - 3).Value
    Next i
End If
End Sub
Bonne Journée
 

Pièces jointes

- 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

Retour