Ajouter données dans listbox

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

JORDAN

XLDnaute Impliqué
Bonjour tout le monde,

je n'arrive pas à trouver de solution pour ajouter des données dans une listbox
je choisis dans une Listbox une donnée
ensuite je recherche cette valeur dans une feuille de calculs
Cette valeur est obligatoirement sur la ligne 1
et j'aimerai pouvoir mettre les valeurs des cellules pleines de cette colonne sans la 1ere ligne dans une autre listbox
Exemple :
si F1 est la cellule trouver
comment rapatrier les données à partir de F2 jusqu'à F? (la dernière cellule pleine)
dans une autre listbox

Voici mon début de code
Code:
Sub ChercheCat()
Dim NomCherche As String
   NomCherche = ListBox2.Value
   Sheets("DONNEES").Range("C1:M1").Find(What:=NomCherche, LookIn:=xlValues).Select
End Sub

Merci pour vos infos
 
Re : Ajouter données dans listbox

Bonjour Jordan,
Saïd 🙂,

A tester:

Code:
Sub ChercheCat()
  Dim NomCherche As String, Trouve As Range, DerLig As Long, Elmnt As Range
  With Sheets("DONNEES")
    NomCherche = ListBox2.Value
    Set Trouve = .Range("C1:M1").Find(What:=NomCherche, LookIn:=xlValues)
    DerLig = .Cells(65536, Trouve.Column).End(xlUp).Row
    For Each Elmnt In .Range(.Cells(2, Trouve.Column), .Cells(DerLig, Trouve.Column))
      UserForm1.ListBox2.AddItem Elmnt.Value
    Next
  End With
End Sub
Je te conseille fortement de préciser la valeur de l'argument LookAt pour Find qui peuvent être XlPart ou XlWhole (recherche partielle ou entière dans la cellule)

Edit
: ce code ne tiens pas compte du fichier que tu viens d'envoyer (j'ai pas mis 3mn à le faire mais un peu plus 😀)
 
Re : Ajouter données dans listbox

Bonsoir Skoobi, le Forum,

Merci pour ton aide
ça marche tres bien, j'ai juste changé
UserForm1.ListBox2.AddItem Elmnt.Value par
UserForm1.ListBox3.AddItem Elmnt.Value
et rajouté en début de code
listbox3.clear
sinon j avais des données en top

Merci beaucoup pour ton aide
bonne soirée
 
Re : Ajouter données dans listbox

Re,
Je reviens pour une question de facicilité
Est-il possible de trier les données directement avant de les intégrer
dans la listbox, ou alors il faut passer par une étape intermédiaire
telle que mettre les valeurs dans des cellulles, les triés puis les
mettre dans la listbox ??
Merci
 
Re : Ajouter données dans listbox

Re,

je vois que dans le code tu utilises déjà une procédure de tri de tableau VBA, autant s'en servir 😉.

Code:
Sub ChercheCat() 'Recherche puis affichage sous-catégorie dans LBX3
Dim NomCherche As String, Trouve As Range, DerLig As Long, X As Long, Tablo()
  LBX3.Clear
'Recherche de la catégorie d'après la LBX2
  NomCherche = LBX2.Value
  With Sheets("DONNEES")
    Set Trouve = .Range("C1:M1").Find(What:=NomCherche, LookIn:=xlValues)
    NomCherche = LBX2.Value
    Set Trouve = .Range("C1:M1").Find(What:=NomCherche, LookIn:=xlValues)
    DerLig = .Cells(65536, Trouve.Column).End(xlUp).Row
    ReDim Tablo(DerLig - 2)
    'on transfert chaque élément de la colonne vers un tableau VBA
    For X = 2 To DerLig
      Tablo(X - 2) = .Cells(X, Trouve.Column).Value
    Next
  End With
  Call Tri(Tablo, LBound(Tablo), UBound(Tablo))
  LBX3.List = Tablo
End Sub

Bon test.
 
Re : Ajouter données dans listbox

Il faut mettre une condition car à l'ouverture de l'USF, la combobox2 est vide:

Code:
Sub ChercheCat() 'Recherche puis affichage sous-catégorie dans LBX3
Dim NomCherche As String, Trouve As Range, DerLig As Long, X As Long, Tablo()
  LBX3.Clear
'Recherche de la catégorie d'après la LBX2
  NomCherche = LBX2.Value
  If NomCherche <> "" Then
    With Sheets("DONNEES")
      Set Trouve = .Range("C1:M1").Find(What:=NomCherche, LookIn:=xlValues)
      NomCherche = LBX2.Value
      Set Trouve = .Range("C1:M1").Find(What:=NomCherche, LookIn:=xlValues)
      DerLig = .Cells(65536, Trouve.Column).End(xlUp).Row
      ReDim Tablo(DerLig - 2)
      'on transfert chaque élément de la colonne vers un tableau VBA
      For X = 2 To DerLig
        Tablo(X - 2) = .Cells(X, Trouve.Column).Value
      Next
    End With
    Call Tri(Tablo, LBound(Tablo), UBound(Tablo))
    LBX3.List = Tablo
  End If
End Sub
 
- 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

Réponses
4
Affichages
249
Réponses
8
Affichages
726
Retour