XL 2019 filtrer affichage listview

terrier

XLDnaute Junior
Bonjour forum
j'ai un probleme avec ma listview:
Dans ma base de donnée feuil3 (les ordre de fabrication client) qui seront livré plus tard avec le formulaire livraison.
-Mon besoin donc, est d'afficher dans la listview seulement les donnés de ma base (feuil3) ayant la valeurs "encours" dans la colonne J.
quel qu'un aurais une idée comment procéder pour réaliser ça svp, c'est la première fois que je réalise une application avec l'objet listview.
merci d'avance pour vos interactions.
 

Pièces jointes

  • test.xlsm
    45.8 KB · Affichages: 13
Solution
Re Bonsoir

Sur la version v01 "OptionButton" tu peux simplement dans l'initialise du userform ajouter ceci :

VB:
With Me.OptionButton1 'Tous
.Value = False
.Enabled = False
End With
With Me.OptionButton2 'Encours only
.Value = True
.Enabled = False
End With

Bonne soirée
@+Thierry

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @terrier @Gégé-45550 , le Forum

J'ai fait une approche "CheckBox" sur ton UserForm, je trouve ça conviviale. J'ai aussi rendu actif le sort (mode string) sur les Headings de Column de ta ListView.

Bonne découverte
@+Thierry
 

Pièces jointes

  • XLD_terrier_ListView_Filter_Test.xlsm
    46.8 KB · Affichages: 19

terrier

XLDnaute Junior
Bonsoir,
En utilisant simplement le bouton de filtre de la colonne J (le petit entonnoir en haut et à droite) et en ne cochant que l'item "En cours".
C'est tout l'avantage des tables structurées.
Cdlt
Bonjour,
je pense que je suis mal exprimé, je souhaite afficher dans ma listeview au démarrage du formulaire, que les lignes avec l'item "encours" dans la colonne j et désactiver les filtre a la fermeture du formulaire.(sa peut etre une bonne solution)
Sauf que je ne maîtrise pas bien les codes vba.
 

Gégé-45550

XLDnaute Accro
Désolé mais j'ai du mal à comprendre.
Quel intérêt de désactiver les filtres par code alors qu'un simple clic suffit.
D'autre part, si votre tableau était filtré au moment de son enregistrement, il le sera tout pareil à l'ouverture, donc ?
 

terrier

XLDnaute Junior
Bonjour @terrier @Gégé-45550 , le Forum

J'ai fait une approche "CheckBox" sur ton UserForm, je trouve ça conviviale. J'ai aussi rendu actif le sort (mode string) sur les Headings de Column de ta ListView.

Bonne découverte
@+Thierry
bonjour tierry, bonjour forum,
Effectivement je trouve sa bien conviviale, laissez moi juste une peut de temps pour apprendre ce que vous avez fais sa pourrais bien servir hihihi.
Merci
 

terrier

XLDnaute Junior
Re Bonsoir @Gégé-45550
Je crois que Terrier parle de sa ListView, pas de sa table structurée. Ou alors je suis complètement à côté de la plaque avec mes deux démos LoL !

Bien @ toi @ vous
@+Thierry
re bonjour tierry,
vous avez bien compris, sauf que pour l’utilisateur de l'application sa seras facile de faire un bêtise plus tard lol (comme livrer un ordre de fabrication déjà livré).
Si c possible de remplacer de remplacer l 'optionButton par un label ou texbox invisible avec la valeur "encours" sa serais parfais (comme sa je laisserais pas le choix au utilisateur de se tromper)
Merci beaucoup tierry
Merci gégé
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonsoir

Sur la version v01 "OptionButton" tu peux simplement dans l'initialise du userform ajouter ceci :

VB:
With Me.OptionButton1 'Tous
.Value = False
.Enabled = False
End With
With Me.OptionButton2 'Encours only
.Value = True
.Enabled = False
End With

Bonne soirée
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Et si tu souhaites aussi, tu peux les rendre invisibles :

Code:
With Me.OptionButton1 'Tous
.Value = False
.Enabled = False
.Visible = False
End With
With Me.OptionButton2 'Encours only
.Value = True
.Enabled = False
.Visible = False
End With

@+Thierry
 

terrier

XLDnaute Junior
re
Voila c'est fais, la solution étais juste devant moi et c'est grâce à vous que je la trouve, des fois on tourne au tour et on trouve pas hihihi.
c'est le rôle de cet boucle
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
ListView1.Sorted = False
ListView1.SortKey = ColumnHeader.Index - 1

If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If

ListView1.Sorted = True
End Sub

'et aussi la fonction si:

If Cells(i, 10).Text = "Encours" Then

c'est tous ce qu'il me falais
 

Pièces jointes

  • XLD_terrier_ListView_Filter_Test_v02.xlsm
    43.3 KB · Affichages: 33

Discussions similaires

Réponses
26
Affichages
2 K

Statistiques des forums

Discussions
311 711
Messages
2 081 783
Membres
101 817
dernier inscrit
carvajal