Récupérer des doonées à partir d'une listbox pour les incorporer dans un textbox

  • Initiateur de la discussion Initiateur de la discussion Chrige
  • 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 !

Chrige

XLDnaute Occasionnel
Bonjour

J’ai réalisé un userform

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
 

Pièces jointes

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
Le fichier :
 

Pièces jointes

Re : Récupérer des doonées à partir d'une listbox pour les incorporer dans un textbox

Bonjour Chrige, bonjour le forum,

Code:
Me.TextBox1.Value = Sheets("Data").Cells(Me.ListBox1.ListIndex + 1, 2)
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é :
Code:
Me.TextBox1.Value = Sheets("Data").Cells(Me.ListBox1.ListIndex + 5, 2)

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) :
Code:
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row
Comme ça ta ListBox sera toujours à jour dès que tu rajoutes une donnée sans avoir à redimensionner ta plage nommée.
 
Re : Récupérer des doonées à partir d'une listbox pour les incorporer dans un textbox

Bonjour Robert

Je te remercie à nouveau

Ces explications très détaillées et très facilement compréhensives me permettront de progresser

Bonne journée
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

Discussions similaires

Retour