Filtre selon critères extrait d'un premier filtre

Bonjour,

Je ne dois pas avoir les bons termes, mais je ne vois pas une autre manière de dire : je voudrais un filtre selon des critères variables obtenus à partir d'un premier filtre.

J'ai effectivement un fichier avec l'enregistrement par ligne de factures.

J'aimerais avoir une macro qui filtre tous les projets à solder, tout en gardant l’historique des factures (car, tel que mon fichier est créé, seule la dernière facture indique l'état de facturation du projet, mon premier filtre ne me permet pas d'avoir les factures antérieures pour les projets non soldés)

Ci-joint un extrait de mon fichier et une macro "bricolé à mon niveau", qui marche mais qui met un temps fou à s'exécuter sur le fichier original.

Merci pour votre aide.

Bonsoir earmeek

JE n'ai pas tout compris à l'exposer de ton problème, mais tu peux peut-être accélérer l'exécution en utilisant ce code

Sub ASOLDER()
  Dim DLig As Long, TabCht() As String
  Dim LigL As Long
  'suprimmer filtre
  If Sheets("EXTRAIT").FilterMode Then Sheets("EXTRAIT").ShowAllData

  '1ER FLITRE > LES DOSSIERS A SOLDER
  'Criteria1:="<>- - -",
  'Criteria2:="<>>>>",
  'Criteria3:="<>SOLDE"
  'Sheets("EXTRAIT").Range("$A$21:$X$5000").AutoFilter Field:=21, Criteria1:=Array("<>>>>", "<>- - -", "<>SOLDE"), Operator:=xlFilterValues
  'NE MARCHE PAS

  ActiveSheet.Range("$A$21:$Z$5000").AutoFilter Field:=1, Criteria1:="A"
  ActiveSheet.Range("$A$21:$Z$5000").AutoFilter Field:=21, Criteria1:="<>>>>", Criteria2:="<>SOLDE"

  'COPIER LA LISTE OBTENUE EN COLONNE E
  Dim DL As Long
  DL = Cells(Application.Rows.Count, 21).End(xlUp).Row
  Sheets("EXTRAIT").Range("E22:E" & DL).Copy
  Sheets("LISTE").Range("A1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  ' Créer le tableau de la liste des chantier
  For LigL = 1 To Sheets("LISTE").Range("A" & Rows.Count).End(xlUp).Row
    ReDim Preserve TabCht(LigL)
    TabCht(LigL) = Sheets("LISTE").Range("A" & LigL)
  Next LigL
  ' Avec la feuille EXTRAIT
  With Sheets("EXTRAIT")
    ' Dernière ligne
    DLig = .Range("V" & Rows.Count).End(xlUp).Row
    ' Si mode filtre activé, le désactiver
    If .FilterMode Then .ShowAllData
    'FILTRER SELON LA LISTE
    .Range("$A$22:$Z$" & DLig).AutoFilter Field:=1, Criteria1:="A"
    .Range("$A$21:$X$" & DLig).AutoFilter Field:=5, Criteria1:=Array(TabCht), Operator:=xlFilterValues
  End With
End Sub

A+

Salut BrunoM45,

C'est nickel!

L'exécution n'a rien à voir avec mon truc bricolé.

Merci beaucoup.

Rechercher des sujets similaires à "filtre criteres extrait premier"