VBA:Alimenter une ListBox multicolonne uniquement avec les valeurs du tableau <1

Dams7700

XLDnaute Nouveau
Bonjour,

Cela fait plusieurs jours que je planche la dessus et je ne trouve rien sur les tuto ni sur les forums.

Y aurait-il donc une bonne âme sachant effectuer cette manipulation avec VBA:

Je m'explique,

J'ai une base de donnée située dans un onglet BD2 sous forme de tableau excel
dans cette base de donnée, la colonne M Contient divers chiffres (différence stock réel et stock minimum)
J'aimerai faire apparaitre dans une ListBox multi colonne (ListBox3) toutes les lignes de la base de donnée dont le chiffre situé dans la colonne M est <1 (strictement plus petit que 1)

Base de donnée de l'onglet BD2=
'' Set f3 = Sheets("BD2")
'' Set bd3 = f3.Range("D2:M" & f3.[M65000].End(xlUp).Row)
Cette listeBox3 constituerai en fait la liste des articles à commander.

Je vous remercie
(N'étant pas un adepte des forums n'hésitez pas à me prévenir si ma demande n'est pas formulée dans les règles)
 

Pièces jointes

  • Gestion Stock 3Brouillon3.xls
    180.5 KB · Affichages: 805

job75

XLDnaute Barbatruc
Re : VBA:Alimenter une ListBox multicolonne uniquement avec les valeurs du tableau <1

Bonjour Dams7700, bienvenue sur XLD,

Il n'y a aucun début de code dans votre projet qui mentionne la ListBox3.

Tout ce que je peux vous conseiller c'est d'utiliser la méthode AddItem pour la remplir en testant les cellules de la colonne M.

Il y a de nombreux exemples sur le forum.

Maintenant c'est à vous de voir ce qui déclenche le remplissage.

A+
 

Dams7700

XLDnaute Nouveau
Re : VBA:Alimenter une ListBox multicolonne uniquement avec les valeurs du tableau <1

Tout d'abord, Merci Job75 pour votre réponse rapide.

Effectivement, je n'ai encore rien mis concernant la listBox3 pour éviter d'encombrer le formulaire avec du code inutile

Ensuite, j'aimerai qu'à l'ouverture de l'userform, les lignes de la base de donnée onglet"BD2" de D2:M apparaisse dans la listBox si le chiffre contenu dans la colonne M est plus petit que 1

Je suis dans tout les cas votre conseil et vais chercher dans le forum au niveau de la méthode Additem

Encore Merci.

A bientôt.
 

Dams7700

XLDnaute Nouveau
Re : VBA:Alimenter une ListBox multicolonne uniquement avec les valeurs du tableau <1

Voila Voila,

grace à ton aide j'ai pu trouver le topic adéquat et régler mon problème. la solution semble toute bête mauis je n'aurais pas su y arriver tout seul

k = 0
With Sheets("BD2")
For i = 2 To .[A65000].End(xlUp).Row
If .Cells(i, 13) < 1 Then
Me.ListBox3.AddItem
Me.ListBox3.List(k, 0) = .Cells(i, 4)
Me.ListBox3.List(k, 1) = .Cells(i, 5)
Me.ListBox3.List(k, 2) = .Cells(i, 6)
k = k + 1
End If
Next i
End With


Un grand merci.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : VBA:Alimenter une ListBox multicolonne uniquement avec les valeurs du tableau <1

Bonjour,

Exemple

http://boisgontierjacques.free.fr/fichiers/Formulaire/ListBoxSelectionTriee.xls

On sélectionne les lignes contenant Oui dans la première colonne et on affiche les colonnes 2 et 3 dans la ListBox.

Code:
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  a = f.Range("a2:c" & f.[A65000].End(xlUp).Row)
  Dim b(), c()
  j = 0
  Me.ListBox1.ColumnCount = 2
  Me.ListBox1.ColumnWidths = "45;100"
  For i = LBound(a) To UBound(a)
      If a(i, 1) = "Oui" Then
          j = j + 1
          ReDim Preserve b(1 To 2, 1 To j)
          b(1, j) = a(i, 2)
          b(2, j) = a(i, 3)
      End If
   Next i
   c = Application.Transpose(b)
 '  Call Tri(c(), 1, LBound(c, 1), UBound(c, 1))
   Me.ListBox1.list = c
End Sub

JB
 
Dernière édition:

Discussions similaires

Réponses
18
Affichages
616
Réponses
21
Affichages
1 K
Réponses
3
Affichages
564

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 009
dernier inscrit
dede972