Listbox : afficher contenu d'une bdd selon conditions

Bonjour à toutes et à tous

Je bloque pour un code VBA concernant une listbox d'un formulaire liée à une BDD (base de données)

la bdd est en plusieurs colonnes.

J'ai déjà encodé les 100 premières lignes mais je souhaite que la listbox se mette automatiquement à jour quand une nouvelle ligne de données est rentrée... Et si je définis la zone de ma listbox par exemple à 200 lignes, j'ai mes 100 lignes de contenu, mais les 100 autres lignes tout à fait vides s'affichent aussi...

Comment faire pour que les lignes vides ne s'affichent pas dans le formulaire et n'afficher que les lignes remplies et rafraichir automatiquement quand une nouvelle donnée est rentrée ?

Je vous mets en copie joint mon fichier.

Merci si quelqu'un trouve la solution, mes explications seront plus claires en consultant mon fichier il me semble.

Belle journée

Lucrob

12formufactu-lr-1.xlsm (102.95 Ko)

Bonjour lucrob, le forum,

Essaie ainsi:

lbxBase.RowSource = "A1:J" & Range("A" & Rows.Count).End(xlUp).Row

cordialement,

Bonjour,

Cela correspond à mes attentes.

Cependant, j'ai une page "Accueil" avec un bouton qui est censé ouvrir le formulaire (avec comme nom frmForm).

J'ai donc affecté une macro à ce bouton comme suit frmForm.show

Ça me montre le formulaire mais la listbox est.......vide.

En exécutant la macro simplement sans la fantaisie du bouton, la listbox correspond bien à mes attentes.

Comment faire pour que le formulaire avec la listbox s'affiche similairement ?

édit de mes actions:

-j'ai deux feuilles pour le moment dont je me sers:

1. feuille "Accueil" avec mon bouton de controle "Formulaire de la base"

2. Base de données de clients en tant que telle "bddcli"

  • j'ai mis un controle x dans la feuille "Accueil"
  • j'ai affecté la macro au bouton
frmForm.show
  • la listbox n'affiche rien (blanche)
  • en revanche, si je fais une recherche de numéro de client, par exemple 120, les champs se remplissent correctement, mais la listbox est toujours vide...

Merci pour votre aide!

7formufactulr1.xlsm (104.41 Ko)

Re,

Je ne maitrise pas trop les listbox

Un essai....mais ça rame un peu pour le chargement de la listbox....

Dans l'attente d'une meilleure proposition....

Private Sub UserForm_Initialize()

Dim i As Integer, dl As Integer
 With Sheets("bddcli")
  dl = .Range("A" & Rows.Count).End(xlUp).Row
   j = 0
    For i = 2 To dl
     Me.lbxBase.ColumnCount = 10
     Me.lbxBase.ColumnWidths = "20;20;60;50;130;40;60;20;20;20"
     Me.lbxBase.AddItem
     Me.lbxBase.Column(0, j) = .Cells(i, 1)
     Me.lbxBase.Column(1, j) = .Cells(i, 2)
     Me.lbxBase.Column(2, j) = .Cells(i, 3)
     Me.lbxBase.Column(3, j) = .Cells(i, 4)
     Me.lbxBase.Column(4, j) = .Cells(i, 5)
     Me.lbxBase.Column(5, j) = .Cells(i, 6)
     Me.lbxBase.Column(6, j) = .Cells(i, 7)
     Me.lbxBase.Column(7, j) = .Cells(i, 8)
     Me.lbxBase.Column(8, j) = .Cells(i, 9)
     Me.lbxBase.Column(9, j) = .Cells(i, 10)
    j = j + 1
   Next i
  End With

     cbxFidelite.AddItem ("")
     cbxFidelite.AddItem ("Oui")
     cbxFidelite.AddItem ("Non")

     lblDateactu.Caption = Format(Date, "ddd d mmm yyyy")

End Sub

Cordialement,

ça marche parfaitement

même si un peu lent à l'appel, ne pas chicaner, je serais trop exigent.

Si quelqu'un sait améliorer le code, tant mieux je suis preneur , si inaméliorable, je suis satisfait du code que tu m'as donné

Cordialement

Lucrob

Re,

Nouvel essai.....beaucoup plus rapide,

Private Sub UserForm_Initialize()
Dim a(), f
Dim dl As Integer

Set f = Sheets("bddcli")
   dl = f.Range("A" & Rows.Count).End(xlUp).Row
    a = f.Range("A2:J" & dl).Value
    Me.lbxBase.List = a()
    Me.lbxBase.ColumnCount = 10
    Me.lbxBase.ColumnWidths = "20;20;60;50;130;40;60;20;20;20"

     cbxFidelite.AddItem ("")
     cbxFidelite.AddItem ("Oui")
     cbxFidelite.AddItem ("Non")

     lblDateactu.Caption = Format(Date, "ddd d mmm yyyy")

End Sub

EDIT:

  • j'ai viré le deuxième Userform car inutile.

  • Le bouton recherche ne fonctionnant pas chez moi, j'ai essayé de bidouiller, il fonctionne uniquement si la valeur cherchée est du texte... .....idem, un double-clic dans la listbox rempli les champs.
26formufactu-lr-v2.xlsm (111.80 Ko)

Cordialement,

Rechercher des sujets similaires à "listbox afficher contenu bdd conditions"