XL 2013 [Résolu] Affichage multicritères dans listbox

Lone-wolf

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

J'ai trouvé sur le site de Jacques Boisgontier un code permettant de faire une recherche multicritères (années-mois-trimèstres); mais je suis complètement largué :oops:. Sur mon formulaires j'ai en plus un combo pour les articles. J'aimerais, dans le module macro_multi_recherches, les macros pour afficher tout celà dans la ListBox dans l'onglet Ventes par périodes.
 

Pièces jointes

  • Formulaire Multi-Recherches.xlsm
    64.8 KB · Affichages: 43

ChTi160

XLDnaute Barbatruc
Bonjour Lone-wolf
Bonjour le fil ,le Forum
je vais , vu le peu d'affluence Lol ,tenter de faire avancer le Chimilimblick lol
il faut que j'adapte une procédure , qui filtre par Année ,Trimestre ,Mois ,Semaine,Jour .
puis je laisser ces possibilités (de filtre ) et y ajouter les Articles ?
Bonne journée
Amicalement
jean marie
 

Lone-wolf

XLDnaute Barbatruc
Bonjour jean marie :), Le Forum :)

Merci d'abord pour être intervenu.

Pour les critères il y a déjà l'année et les trimèstres (2016) qui fonctionnent . Là j'ai un souci avec la listbox1, lors de l'initialisation elle affiche toutes les données, mais quand je sélectionne un client elle n'affiche que les données de l'année 2016?? :rolleyes:. Je te joint le fichier.
 

Pièces jointes

  • Formulaire Multi-Recherches.xlsm
    75.3 KB · Affichages: 41
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
Ok
j'ai un problème de format de date 19.09.2019 lorsque je veux utiliser le Combobox4 de la feuille "Ventes par Périodes"
VB:
If Year(Bd(i, 1)) = an Then
'-->Message "Incompatibilité de type" format des Données ex : "18.09.2016"
Donc je vais laisser JB (que je Salue) intervenir pour modifier ton Fichier Lol
Bonne journée
Amicalement
jean marie
 

youky(BJ)

XLDnaute Barbatruc
Bonjour LoneWolf et ChTi,
Je pense que le fichier au départ les dates étaient en format dd.mm.yyyy donc les macros faisaient avec.
Maintenant il y a 2 formats 1 avec "." et l'autre avec" /" ........ donc bug
Soit tout mettre avec "/" dans les 2 onglets
Remplacer>"." par "/" >tout remplacer
idem dans toutes les macros remplacer dd.mm.yyyy par dd/mm/yyyy (dans tout le projet)
J'ai testé cela à l'air de bien fonctionner
Bruno
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Bruno, jean marie, le Forum :).

Pour les dates j'ai fait le nécessaire et c'est ok. J'ai maintenant un souci avec la macro Ventes Articles dans le Module Macro Multi Critères. Si je sélectionne le mois et l'année il n'y a pas de problème mais, dès que je sélectionne un article la macro plante et je n'arrive pas à résoudre le problème. Si vous voudriez bien me donner un coup de main, ça serait sympa.
 

Pièces jointes

  • Formulaire Multi Recherches.zip
    84.4 KB · Affichages: 32

youky(BJ)

XLDnaute Barbatruc
Hello Lone-Wolf,
J'ai retouché 2 macros que voici
J'ai ajouté les if n>0 then... et modifié un for next qui nous sortait de suite
Bonne suite
Bruno
VB:
Public Sub Ventes_Annee()
Dim Tbl(), Bd

    derlig = ShV.Range("a" & Rows.Count).End(xlUp).Row
    n = 0
    Bd = ShV.Range("a2:k" & derlig).Value

    With UserForm1
        .ListBox4.Clear
      
        For i = 1 To UBound(Bd)
            If Bd(i, 1) Like "*" & .ComboBox4 Then
                n = n + 1: ReDim Preserve Tbl(1 To UBound(Bd, 2), 1 To n)
                For k = 1 To UBound(Bd, 2): Tbl(k, n) = Bd(i, k): Next k
            End If
        Next i
        If n > 0 Then .ListBox4.Column = Tbl

        For i = 0 To .ListBox4.ListCount - 1
            .ListBox4.List(i, 0) = Format(.ListBox4.List(i, 0), "dd.mm.yyyy")
            .ListBox4.List(i, 3) = Format(.ListBox4.List(i, 3), "0.00.-")
        Next i
    End With
End Sub




Public Sub Ventes_Articles()
Dim Tbl(), Bd, mois1, mois2, an1, an2

    derlig = ShV.Range("a" & Rows.Count).End(xlUp).Row
    Bd = ShV.Range("a2:f" & derlig).Value
    ColList = Array(1, 2, 3, 4)
    Ncol = UBound(ColList) + 1

    With UserForm1
        .ListBox4.Clear
        mois1 = Format(.ComboBox8, "mmmm")
        an1 = .ComboBox4
        n = 0
        For i = 1 To UBound(Bd)
            mois2 = Format(Bd(i, 1), "mmmm")
            an2 = Format(Bd(i, 1), "yyyy")
            If mois2 = mois1 And an2 = an1 And Bd(i, 2) = .ComboBox5 Then
                n = n + 1: ReDim Preserve Tbl(1 To Ncol, 1 To n)
                x = 0
                For Each col In ColList
                    x = x + 1: Tbl(x, n) = Bd(i, col)
                Next col
            End If
        Next i
        If n = 0 Then MsgBox "Pas de vente pour cet article.", , "CONTRÔLE VENTES": Exit Sub
        .ListBox4.Column = Tbl
          
          
        For i = 0 To .ListBox4.ListCount - 1
            .ListBox4.List(i, 0) = Format(.ListBox4.List(i, 0), "dd.mm.yyyy")
            .ListBox4.List(i, 3) = Format(.ListBox4.List(i, 3), "0.00.-")
        Next i
    End With
End Sub
 

ChTi160

XLDnaute Barbatruc
Bonjour Lone-wolf
Bonjour le Fil , le Forum
j'ai modifié le Traitement des Données en feuille (0) soit "Contrôle Facturation"
Je pourrai (si Intérêt) regarder à améliorer le traitement des Données en feuille (1) soit "Ventes par Périodes"
Bonne journée
Amicalement
jean marie
 

Pièces jointes

  • Formulaire Multi-Recherches-Chti160-3.xlsm
    102.9 KB · Affichages: 43

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400