IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Tri selon deux critères [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2019
    Messages : 8
    Par défaut Tri selon deux critères
    Bonjour à toutes et à tous,

    je suis à la recherche d'une macro qui me sélectionne des catégories selon deux critères.
    Je vais essayer de m'expliquer : j'aimerais que cela ouvre une nouvelle page excel pour réaliser l'opération

    Nom : 2019-08-12_15h55_36.png
Affichages : 280
Taille : 36,5 Ko
    J'ai un tableau avec des numéros d'IMB, et à ces numéros sont marqués soit "NOK" soit "OK" sur la colonne U.
    J'aimerais que pour chaque numéro d'IMB contenant le "NOK", la ligne soit copiée dans un autre tableau excel.
    Ensuite même type de formule, mais avec la colonne Y.

    Cependant j'aimerais que ce tri soit fait sur le même excel que l'on a ouvert avec la nouvelle page. Le tout pour que cela donne ceci :
    Nom : 2019-08-12_16h00_11.png
Affichages : 275
Taille : 11,0 Ko

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Alla.pero Voir le message
    Bonsoir,

    Sans macro, vous pourriez vous imbiber de ça : advancedfilter

  3. #3
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Autre proposition avec macro (Je suppose, d'après ce que vous montrez que les IMB sont en colonne N)
    Pièce jointe 497211

    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub Filtre()
        Dim DerLig_f1 As Long, DerLig_f2 As Long, DerCol_f2 As Long
        Application.ScreenUpdating = False
        Set f1 = Sheets("BDD")
        Set f2 = Sheets("Filtre")
        f2.Cells.Clear
        DerLig_f1 = f1.[N100000].End(xlUp).Row
        If f1.AutoFilterMode = False Then f1.Rows(1).AutoFilter
        f1.Range("A1:Y" & DerLig_f1).AutoFilter Field:=21, Criteria1:="NOK"
        NbCol = f1.[IV1].End(xlToLeft).Column
        f1.Range(Cells(1, "N"), Cells(DerLig_f1, "N")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[A1]
        f1.Range(Cells(1, "U"), Cells(DerLig_f1, "U")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[B1]
        f1.Range(Cells(1, "Y"), Cells(DerLig_f1, "Y")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[C1]
        DerLig_f2 = f2.[A100000].End(xlUp).Row
        f1.AutoFilterMode = False
        f1.Range("A1:Y" & DerLig_f1).AutoFilter Field:=25, Criteria1:="NOK"
        f1.Range(Cells(2, "N"), Cells(DerLig_f1, "N")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "A")
        f1.Range(Cells(2, "U"), Cells(DerLig_f1, "U")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "B")
        f1.Range(Cells(2, "Y"), Cells(DerLig_f1, "Y")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "C")
        f1.AutoFilterMode = False
        f2.Select
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
    Cdlt

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2019
    Messages : 8
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonsoir,

    Sans macro, vous pourriez vous imbiber de ça : advancedfilter
    Je vais effectivement lire ceci car cela pourrait m'aider dans l'avenir, merci.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2019
    Messages : 8
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Autre proposition avec macro (Je suppose, d'après ce que vous montrez que les IMB sont en colonne N)
    Pièce jointe 497211

    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub Filtre()
        Dim DerLig_f1 As Long, DerLig_f2 As Long, DerCol_f2 As Long
        Application.ScreenUpdating = False
        Set f1 = Sheets("BDD")
        Set f2 = Sheets("Filtre")
        f2.Cells.Clear
        DerLig_f1 = f1.[N100000].End(xlUp).Row
        If f1.AutoFilterMode = False Then f1.Rows(1).AutoFilter
        f1.Range("A1:Y" & DerLig_f1).AutoFilter Field:=21, Criteria1:="NOK"
        NbCol = f1.[IV1].End(xlToLeft).Column
        f1.Range(Cells(1, "N"), Cells(DerLig_f1, "N")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[A1]
        f1.Range(Cells(1, "U"), Cells(DerLig_f1, "U")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[B1]
        f1.Range(Cells(1, "Y"), Cells(DerLig_f1, "Y")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[C1]
        DerLig_f2 = f2.[A100000].End(xlUp).Row
        f1.AutoFilterMode = False
        f1.Range("A1:Y" & DerLig_f1).AutoFilter Field:=25, Criteria1:="NOK"
        f1.Range(Cells(2, "N"), Cells(DerLig_f1, "N")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "A")
        f1.Range(Cells(2, "U"), Cells(DerLig_f1, "U")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "B")
        f1.Range(Cells(2, "Y"), Cells(DerLig_f1, "Y")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "C")
        f1.AutoFilterMode = False
        f2.Select
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
    Cdlt

    Parfait merci d'avoir pris le temps pour cette macro, je la test demain et je vous tiens au courant.
    Les IMB sont bien en colonnes N

    Bonne soirée.

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2019
    Messages : 8
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Autre proposition avec macro (Je suppose, d'après ce que vous montrez que les IMB sont en colonne N)
    Pièce jointe 497211

    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub Filtre()
        Dim DerLig_f1 As Long, DerLig_f2 As Long, DerCol_f2 As Long
        Application.ScreenUpdating = False
        Set f1 = Sheets("BDD")
        Set f2 = Sheets("Filtre")
        f2.Cells.Clear
        DerLig_f1 = f1.[N100000].End(xlUp).Row
        If f1.AutoFilterMode = False Then f1.Rows(1).AutoFilter
        f1.Range("A1:Y" & DerLig_f1).AutoFilter Field:=21, Criteria1:="NOK"
        NbCol = f1.[IV1].End(xlToLeft).Column
        f1.Range(Cells(1, "N"), Cells(DerLig_f1, "N")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[A1]
        f1.Range(Cells(1, "U"), Cells(DerLig_f1, "U")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[B1]
        f1.Range(Cells(1, "Y"), Cells(DerLig_f1, "Y")).SpecialCells(xlCellTypeVisible).Copy Destination:=f2.[C1]
        DerLig_f2 = f2.[A100000].End(xlUp).Row
        f1.AutoFilterMode = False
        f1.Range("A1:Y" & DerLig_f1).AutoFilter Field:=25, Criteria1:="NOK"
        f1.Range(Cells(2, "N"), Cells(DerLig_f1, "N")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "A")
        f1.Range(Cells(2, "U"), Cells(DerLig_f1, "U")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "B")
        f1.Range(Cells(2, "Y"), Cells(DerLig_f1, "Y")).SpecialCells(xlVisible).Copy Destination:=f2.Cells(DerLig_f2 + 1, "C")
        f1.AutoFilterMode = False
        f2.Select
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
    Cdlt
    Bonjour,

    après avoir modifié le nom des onglets sur mon fichier, cette macro marche bel et bien, merci beaucoup !

    Bonne journée à vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requète de tri selon plusieurs critères
    Par gregtix dans le forum Requêtes
    Réponses: 37
    Dernier message: 24/05/2012, 23h03
  2. [AC-2007] Fonction de cumul selon deux critères
    Par LouiMz dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/03/2012, 17h37
  3. [V6] Tris selon plusieurs critères
    Par AD1983 dans le forum Webi
    Réponses: 1
    Dernier message: 02/11/2011, 11h03
  4. [XL-2003] Somme selon deux critères
    Par arnest dans le forum Excel
    Réponses: 1
    Dernier message: 13/01/2010, 09h07
  5. Tri sur deux critères
    Par Flo4594 dans le forum Access
    Réponses: 2
    Dernier message: 22/12/2006, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo