Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Projet filtre elaboré

  • Initiateur de la discussion Initiateur de la discussion MINO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

MINO

Guest
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

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

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

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
376
Réponses
16
Affichages
503
Réponses
20
Affichages
628
Réponses
5
Affichages
305
Réponses
3
Affichages
208
Réponses
4
Affichages
240
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…