Projet filtre elaboré

MINO

XLDnaute Junior
hello ,t
je cherche a faire un projet (macro)que je le trouve très très très difficile pour moi mais je pense que c r1 pour vos . une description détaillé dans le fichier joint
svp de me aider c urgent
 

Pièces jointes

  • projet.xls
    75.5 KB · Affichages: 47
  • projet.xls
    75.5 KB · Affichages: 47
  • projet.xls
    75.5 KB · Affichages: 49

kjin

XLDnaute Barbatruc
Re : Projet filtre elaboré

bonjour,
Filtre élaboré avec ce que j'ai compris
Code:
Sub Filtrer()
Dim rng As Range, i%, crit, tablo, tri%
crit = Array("Jour", "Varaint", "Type", "Chassi_Blouq", "Modul_Blouq", "Minut_Produc", "Minut_Produc")
With Sheets("Détail")
    Set rng = .Range("A1:I" & .Range("A65000").End(xlUp).Row)
    tablo = .Range("M3:T12").Value
End With
Application.ScreenUpdating = False
For i = 1 To UBound(tablo)
    Sheets.Add after:=Sheets(Sheets.Count)
    With ActiveSheet
        .Name = tablo(i, 1)
        .Range("A1:G1") = crit
        .Range("A2") = "'" & tablo(i, 3)
        .Range("B2") = tablo(i, 5)
        .Range("C2") = tablo(i, 4)
        .Range("D2") = "N"
        .Range("E2") = "N"
        .Range("F2") = ">=" & tablo(i, 7)
        .Range("G2") = "<=" & tablo(i, 8)
        rng.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=.Range("A1:G2"), CopyToRange:=.Range("A4"), Unique:=False
        .Rows("1:3").EntireRow.Delete
        tri = IIf(tablo(i, 6) = "ASC", 1, 2)
        .Columns("A:J").Sort Key1:=Range("H2"), Order1:=tri, Header:=xlGuess
    End With
Next
Sheets("Détail").Activate
End Sub
Note que vu ta base, seule le filtre sur la première chaine renvoie des données
A+
kjin
 

Pièces jointes

  • mino.xls
    58 KB · Affichages: 24

MINO

XLDnaute Junior
Re : Projet filtre elaboré

merci Kjin pour la Réponse,
c1 un bon macro( ce que je cherche) mais pourriezvous (aussi vous les Forumist)ameliorer ca pour moi je deja écrire une description detaille dans les fichier minox.
merci davance
 

Pièces jointes

  • minox.xls
    54.5 KB · Affichages: 31

kjin

XLDnaute Barbatruc
Re : Projet filtre elaboré

Bonjour,
1 - même si tu as du mal à t'exprimer en français et tu es tout excusé, le langage SMS n'est pas bienvenue
2 - je ne comprends pas ce que tu veux représenter sur tes graphiques
3 - si tu souhaites filtrer la colonne J, il faut indiquer "YES" ou "NO" dans la colonne U, sinon je pars du principe que s'il n'y a rien dans cette colonne, c'est que cette chaine n'est pas à prendre en compte donc à toi de voir
4 - il est nécessaire de comprendre de principe du filtre élaboré afin que tu puisses l'adapter par toi-même à l'avenir
Code:
Sub Filtrer()
Dim rng As Range, i%, crit, tablo, dl%, tri%
crit = Array("Jour", "Varaint", "Type", "Chassi_Blouq", "Modul_Blouq", _
                        "Minut_Produc", "Minut_Produc", "Special")
With Sheets("Détail")
    Set rng = .Range("A1:J" & .Range("A65000").End(xlUp).Row)
    tablo = .Range("M3:U12").Value
End With
Application.ScreenUpdating = False
For i = 1 To UBound(tablo)
    If UCase(tablo(i, 2)) = "YES" And UCase(tablo(i, 9)) = "YES" Then
        Sheets.Add after:=Sheets(Sheets.Count)
        With ActiveSheet
            .Name = tablo(i, 1)
            .Range("A1:H1") = crit
            .Range("A2") = "'" & tablo(i, 3)
            .Range("B2") = tablo(i, 5)
            .Range("C2") = tablo(i, 4)
            .Range("D2") = "N"
            .Range("E2") = "N"
            .Range("F2") = ">=" & tablo(i, 7)
            .Range("G2") = "<=" & tablo(i, 8)
            .Range("H2") = tablo(i, 9)
            rng.AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=.Range("A1:H2"), CopyToRange:=.Range("A5"), Unique:=False
            .Rows("1:2").Cells.Clear
            tri = IIf(tablo(i, 6) = "ASC", 1, 2)
            dl = .Range("A65000").End(xlUp).Row
            .Range("A5:J" & dl).Sort Key1:=.Range("H5"), Order1:=tri, Header:=xlYes
        End With
    End If
Next
Sheets("Détail").Activate
End Sub
A+
kjin
 

Pièces jointes

  • mino2.xls
    56.5 KB · Affichages: 30

MINO

XLDnaute Junior
Re : Projet filtre elaboré

HI Kjin,
il reste une petite astuce pourquoi les autre chaîne ne apparaisse pas , je pense que la problème et au niveaux de la déclaration de caractère spéciale de colonne U si U= Yes il faut prendre seulement les (N_CHASSI) colonne B qui ont la déclaration YES dans la colonne J et les autre critère il faut le pendre en considération aussi pour les autre chaîné au la colonne U ne pas déclare comme YES notre projet doive être la mémé et sans changement
et MERCi d`avance
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 867
Membres
103 979
dernier inscrit
imed