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

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
 

jp14

XLDnaute Barbatruc
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
 

Kémi

XLDnaute Nouveau
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
 

Dull

XLDnaute Barbatruc
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

  • kemi.zip
    11.9 KB · Affichages: 144

excalibur

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

rebonjour kemi dull le forum une version avec textbox a la place des labels
dans certains cas plus facile a manipuler
 

Pièces jointes

  • Copie de Labels & sélection combobox.zip
    11.5 KB · Affichages: 203

Discussions similaires

Statistiques des forums

Discussions
312 842
Messages
2 092 725
Membres
105 518
dernier inscrit
guillaume2711