tri ou Filtre avec conditions....

Pour toutes vos questions à propos d'Excel ...

tri ou Filtre avec conditions....

Messagepar pilotebien » 01 Sep 2010, 22:18

Bonjour,

Sur un tableau je dois filtrer et trier des données avec 2 criteres.
Le premier un millesime année et la seconde un montant > 50000€. Comment mettre ca dans une macro.

En fait je veux filtrer mes operations comme ci/ si une operation a un EJ > 50000€ dans l'année je la selectionne et toutes les operations libellés 2010, 2110.( les 2 colonnes en jaune)

Suite au filtre je souhaiterais les classer par Departements (colone B) / Attributaires (colonne C) / Immeubles (colone D) en 2 sections . la 1ere les EJ de + de 50000€ et la 2ème section ceux de - de 50000€.
Fichiers joints
ExportTemp.rar
(32.62 Kio) Téléchargé 10 fois
Dernière édition par pilotebien le 01 Sep 2010, 22:55, édité 1 fois.
pilotebien
Utilisateur occasionnel
 
Messages: 15
Inscription: 15 Mars 2010, 23:33
Version Excel: 2007

Re: tri ou Filtre avec conditions....

Messagepar Amadéus » 01 Sep 2010, 22:41

Bonsoir

Tu as oublié de joindre le fichier

Cordialement
Amadéus vous informe que, pour cause de saturation, il ne peut plus répondre aux messages privés non sollicités.
Amadéus
Modérateur
 
Messages: 10875
Inscription: 07 Mai 2006, 11:18
Localisation: Ariège-Pyrénées France
Version Excel: Office Excel 2003 FR

Re: tri ou Filtre avec conditions....

Messagepar dubois » 02 Sep 2010, 09:39

Bonjour à tous,

Il serait bon d'ajouter 3 ou 4 lignes en haut (pour emplacement critères et bouton)
La colonne "G" est-elle disponible ? (c'est pour faciliter le critère année)

je te propose deux feuilles d'extraction
1) supérieure à 500 000
2) inférieure ou égal à 500 000
chaque feuille étant triée

dis-nous si Ok,
à te relire

Amicalement
Claude

-- Jeu Sep 02, 2010 12:22 pm --

re,
en attendant, ici j'utilise la colonne "G"
les feuilles "<500Ke" et ">500Ke" doivent être placées en 1er
les valeurs à zéro ne sont pas extraites
Code: Tout sélectionner
Sub ExtraitFiltres()
Dim i As Byte
    Application.ScreenUpdating = False
'Macro par Claude Dubois pour "pilotebien" Excel-Pratique le 02 Sept 2010
'--- filtres ---(les feuilles "<500Ke" et ">500Ke" doivent être placées en 1er) ---

    With Sheets("ExportTemp")
            .Range("g2:g" & .[b65000].End(xlUp).Row) = "=Left(f2,4)*1" 'formule année
           
        For i = 1 To 2
            If i = 1 Then .Range("ad2") = "=and(g2>2009,g2<2111,i2>0,i2<=500000)" 'critères
           If i = 2 Then .Range("ad2") = "=and(g2>2009,g2<2111,i2>500000)" 'critères
           .Range("b1:z" & .[b65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
            .Range("ad1:ad2"), CopyToRange:=Sheets(i).Range("b1:z1"), Unique:=False
       
                '--- tris ---
           With Sheets(i)
                .Range("b1:z" & .[b65000].End(xlUp).Row).Sort Key1:= _
                .Range("b1"), Order1:=xlAscending, Key2:= _
                .Range("c1"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
                    False, Orientation:=xlTopToBottom
                   
                .Range("b1:z" & .[b65000].End(xlUp).Row).Sort Key1:= _
                .Range("d1"), Order1:=xlAscending, Key2:= _
                .Range("i1"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
                    False, Orientation:=xlTopToBottom
            End With
        Next i
            .Range("g2:g" & .[b65000].End(xlUp).Row).ClearContents
            .Range("ad2").ClearContents
    End With
End Sub

Amicalement
Claude
Fichiers joints
pilotebien_filtreBoucle.zip
(52.02 Kio) Téléchargé 10 fois
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: tri ou Filtre avec conditions....

Messagepar pilotebien » 02 Sep 2010, 21:30

Merci et bonsoir pour le coup de main

C'est ce que je cherchais . Le soucis il faut que j'affine car je n'ai pas toutes mes operations. J'ai du oubier quelque chose dans mon ennocé. Je travaille ca ce soir et vous tiens au courant .

Merci
pilotebien
Utilisateur occasionnel
 
Messages: 15
Inscription: 15 Mars 2010, 23:33
Version Excel: 2007

Re: tri ou Filtre avec conditions....

Messagepar pilotebien » 04 Sep 2010, 21:51

Merci de votre aide. Aprés differents test et mmodifications infructueuses je reviens vers vous.
Dans la formule il faudrait faire apparaitre une condition que j'ai oublié de dire :oops: .
Il doit apparaitre obligatoirement les années millesimées 2010 (année en cours). Comment mettre ca en oeuvre. Merci
pilotebien
Utilisateur occasionnel
 
Messages: 15
Inscription: 15 Mars 2010, 23:33
Version Excel: 2007

Re: tri ou Filtre avec conditions....

Messagepar dubois » 04 Sep 2010, 22:22

bonsoir,

Uniquement l'année en cours ?
et toujours la colonne "F" ?

Claude
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: tri ou Filtre avec conditions....

Messagepar pilotebien » 05 Sep 2010, 18:39

bonsoir et merci.

Il faut imperativement l'année 2010 et toutes celles qui ont un EJ (colone F) superieur a 50.000€ soient selectionner.
Comment faire pour que le tri par valeur >< 500.000€ soit l'une en dessous l'un de l'autre.
La colone G n'est pas dispo - On peut prendre la colone AB - Je reserve la AA au cas ou. Merci.
pilotebien
Utilisateur occasionnel
 
Messages: 15
Inscription: 15 Mars 2010, 23:33
Version Excel: 2007

Re: tri ou Filtre avec conditions....

Messagepar dubois » 05 Sep 2010, 20:30

Bonsoir,

Envoie la structure réelle de la feuille "ExportTemp"
Simplement la ligne d'en-têtes à la bonne ligne + une ligne anonymisée

je résume,
1) extraction des valeurs inférieures ou égales à 50.000
2) extraction des valeurs supérieures à 50.000
le tout sur la même feuille et pour l'année en cours (2010)
Les 2 extractions séparées par une ligne.

à te relire
Claude
édit: je ne sais pas pourquoi j'étais parti sur 500.000 !
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: tri ou Filtre avec conditions....

Messagepar pilotebien » 05 Sep 2010, 22:06

Merci pour votre aide

J'ai fais un fichier reduit .
Quand j'exporte de mon appli l'export Temp je le colle dans l'onglet export OP 2010
De la petite verif perso de quelques données . Puis copie du tableau dans l'onglet No Touch 2010 puis un tri par code PLIMAT. De la je fais a la main la suupression de ces lignes:
toutes OP non millesimés 2010 (2010 c'est mon années de travail) qu'il y ait un EJ de 0 a 10.000.000€
puis toutes operations qui n'a pas un EJ (colone I) le critere de retenu est un montant > 50000€ (2003 a 2009 puis 2011 a 2015 puis 2110, 2111, 3000)
Ensuite copie de cette feuille a la main vers l'onglet OP 2010. C'est a ce moment que je dois classer mes OP avec 2 criteres : OP > 500.000€ et OP < 500.000€ séparées par une ligne et classer par un choix multiples si cela est possible.
Ce que je voudrais en choix :
classement par EJ, classement par code plimat, classement par immeubles, classement par departement aprés si je comprends le raisonneemnt je ferais plus. Je pensais faire un bandeau avec ces differents choix sur le coté ou en haut dans une barre de menu. Merci
Fichiers joints
Test appli.rar
(64.05 Kio) Téléchargé 9 fois
pilotebien
Utilisateur occasionnel
 
Messages: 15
Inscription: 15 Mars 2010, 23:33
Version Excel: 2007

Re: tri ou Filtre avec conditions....

Messagepar dubois » 05 Sep 2010, 22:56

re,

Essaye de faire un résumé clair,
là, on y comprend plus rien !

Amicalement
Claude
édit: voici où j'en suis, sur la base du 1er fichier
extractions sur feuille "Extrait" en utilisant la colonne "AB"
Code: Tout sélectionner
Sub ExtraitFiltres2()
Dim Lg%, Lg2%, x%, i As Byte
    Application.ScreenUpdating = False
'Macro par Claude Dubois pour "pilotebien" Excel-Pratique le 06 Sept 2010
'--- filtres les extractions dans feuille "Extrait" ---
       Sheets("Extrait").Range("b1:ab" & [b65000].End(xlUp).Row).Clear
    Lg = 1
    With Sheets("ExportTemp")
            .Range("ab2:ab" & .[b65000].End(xlUp).Row) = "=Left(f2,4)*1" 'formule année
       For i = 1 To 2
            If i = 1 Then .Range("ad2") = "=and(ab2=$a$1,i2>50000)" 'critères
           If i = 2 Then .Range("ad2") = "=and(ab2=$a$1,i2>0,i2<=50000)" 'critères
           
            .Range("b1:ab" & .[b65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
            .Range("ad1:ad2"), CopyToRange:=Sheets("Extrait").Range("b" & Lg & ":ab" & Lg), Unique:=False
           
            Lg2 = Sheets("Extrait").Range("b65536").End(xlUp)(2).Row
            If i = 1 Then x = Lg2
                '--- tris ---
           With Sheets("Extrait")
                .Range("b" & Lg & ":z" & Lg2).Sort Key1:= _
                .Range("i" & Lg), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1
               
                .Range("b" & Lg & ":z" & Lg2).Sort Key1:= _
                .Range("b" & Lg), Order1:=xlAscending, Key2:= _
                .Range("c" & Lg), Order2:=xlAscending, Key3:= _
                .Range("d" & Lg), Order3:=xlAscending, Header:=xlYes, OrderCustom:=1
            End With
                Lg = Lg2
        Next i
            .Range("ab1:ab" & .[b65000].End(xlUp).Row).ClearContents
            .Range("ad2").ClearContents
    End With
        With Sheets("Extrait")
            .Rows(x).Range("ab1").Clear
            .Rows(x).Clear
            .Cells(x, 2) = "Inférieures à 50.000"
            .Activate
        End With
End Sub

Claude
Fichiers joints
pilotebien_filtreBoucle3.zip
(52.01 Kio) Téléchargé 9 fois
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Suivante

Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot] et 9 invités