XL 2016 Afficher données dans listbox sous condition

KTM

XLDnaute Impliqué
Bonjour chers tous

Dans mon fichier joint mon userform affiche tous les enregistrements de ma base.
Mais je voudrais afficher uniquement les enregistrements du mois indiqué en cellule L1 et des mois antérieurs .
Pour l'Heure j'ai fait le code pour afficher tous.
VB:
Private Sub UserForm_Initialize()
Dim dl As Long
dl = Sheets("VA").Range("A" & Rows.Count).End(xlUp).Row
With Sheets("VA").[A1].CurrentRegion.Resize(dl, 10)
    ListBox2.ColumnCount = .Columns.Count
    If .Rows.Count > 1 Then ListBox2.RowSource = .Rows(2).Resize(.Rows.Count - 1).Address
End With
End Sub

Merci et soyons en sécurité.
 

Pièces jointes

  • Classeur1.xlsm
    24 KB · Affichages: 18

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

Sans feuille intermédiaire.
On peut choisir les colonnes affichées et l'ordre des colonnes.
La largeur des colonnes est calculée automatiquement.

Boisgontier
 

Pièces jointes

  • Copie de FormCascadeListBoxTextBoxColonneNonContigueCond.xlsm
    42 KB · Affichages: 18
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
re,

Il faut nettoyer la propriété RowSource avant le filtrage :
VB:
Private Sub UserForm_Initialize()
    ListBox2.RowSource = "" ' nettoyage de la source
    Filtre
    With Sheets("Filtre").Range("A4").CurrentRegion.Resize(, 10)
        ListBox2.ColumnCount = .Columns.Count
        If .Rows.Count > 1 Then ListBox2.RowSource = "Filtre!" & .Rows(2).Resize(.Rows.Count - 1).Address
    End With
End Sub

P.S. il est préférable de rajouter le nom de la feuille au rowsource.

Cordialement
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @KTM @Roblochon @BOISGONTIER, le Forum


J'ai repris le classeur d'origine en filtrant sur l'alimentation de la ListBox mais donc plus en RowSource mais en AddItems + List pour les colonnes. C'est une autre approche.

J'essaie donc de prendre "uniquement les enregistrements du mois indiqué en cellule L1 et des mois antérieurs " comme spécifié dans le post initial. Je gère aussi les années bissextiles avec une petite fonction connue sur le net.

Par exemple si on tape 15/02/2020, il prendra toutes les écritures du 1 au 29 février 2020 inclus et celles aussi de janvier 2020 et de décembre 2019... Si j'ai bien compris ?

Bonne soirée
Bien à vous & take care
@+Thierry
 

Pièces jointes

  • XLD_ListBox_multi_colonnes_list_in_loop.xlsm
    20.5 KB · Affichages: 10

_Thierry

XLDnaute Barbatruc
Repose en paix
Salut @BOISGONTIER

Oui dans ton programme, je pense oui, puisque tu n'indiques que le numéro de mois.

Moi j'ai une autre approche dans mon classeur pour essayer de respecter scrupuleusement la demande initiale qui était donc "uniquement les enregistrements du mois indiqué en cellule L1 et des mois antérieurs "

Bien à toi et bon confinement
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata