A l’intérieur j’ai mis une listbox qui récupère les données de la 1ère colonne de la feuille Data
Je souhaiterais lorsque je clique sur une de ces données, faire apparaitre dans le textbox la donnée qui se trouve dans la 2ème colonne sur la même ligne.
Exemple je clique sur Acer dans la listbox, Micro-ordinateur doit apparaitre dans le textbox
Est-ce que quelqu’un peut me donner un petit coup de main
Merci
Re : Récupérer des doonées à partir d'une listbox pour les incorporer dans un textbox
Bonsoir Chrige, bonsoir le forum,
En pièce jointe ton fichier modifié avec alimentation dynamique de la ListBox1 :
Code:
Private Sub UserForm_Initialize()
Dim dl As Integer
Dim pl As Range
With Sheets("Data")
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row
Set pl = .Range("A1:A" & dl)
End With
ListBox1.List = pl.Value
End Sub
Et ce code au clic dans la ListBox1 qui est correct uniquement si chaque donnée de la colonne A est unique (pas de doublons) :
Code:
Private Sub ListBox1_Click()
Me.TextBox1.Value = Sheets("Data").Cells(Me.ListBox1.ListIndex + 1, 2)
End Sub
Une listbox stocke les éléments en les indexant de 0 à (nombre d'élément - 1). Donc le premier élément de la ListBox aura sa propriété ListIndex = 0, le second => ListIndex = 1, etc. Comme on voulait récupérer une données sur une ligne et que dans ton exemple la première donnée se trouve dans la ligne 1, on a donc l'equivalence : ligne = ListIndex + 1. Ton tableau aurait commencé à la ligne 4 le code aurait été :
Pour l'autre ligne :
Range("A10") = Cells(10, 1) => cellule (ligne, Colonne) => 1 correspond à la première colonne donc la colonne A. Pour définir la dernière ligne éditée d'une colonne X on se positionne dans la dernière cellule de la colonne : Cells(Application.Rows.count, X) puis on remonte avec la combinaison de touches [End]+[Flèche vers le haut] qui en VBA s'écrit End(xlUp). On rajoute Row à la fin pour en extraire le numéro de ligne.
Ça donne, pour la dernière ligne dl de la première colonne (colonne A) :