VBA filtre sur colonne avec 2 critères

Bonjour à tous,

Je cherche à modifier ou à améliorer le code pour pouvoir filtrer une colonne et par deux critères en fonction de l'ordre des deux cellules.

Cellule (i6)= 10 lignes

Cellule (i7)= 5 lignes

Cellule (i8)= 2 lignes

Merci d'avance pour votre aide.

Sub Filtre()
Dim derln As Long, ln As Long, lgn As Long, i As Long
    With Sheets("Liste")
        Application.ScreenUpdating = False
        Range("A13:M100").ClearContents
        derln = .Range("A" & Rows.Count).End(xlUp).Row
        .Rows("3:" & derln).EntireRow.Hidden = False
        i = 0
        For ln = 3 To derln

            If .Range("A" & ln) = Range("I6") Then
            If .Range("A" & ln) = Range("I7") Then
            If .Range("A" & ln) = Range("I8") Then
                i = i + 1
                lgn = Range("B30").End(xlUp)(2).Row
                .Range("A" & ln & ":M" & ln).Copy Range("A" & lgn)
                Range("B" & lgn) = i
                End If
                End If
           End If
        Next ln
  End With
End Sub

Pour plus de clarté, voici un exemple en fichier joint

23tttt.xlsm (28.13 Ko)

Bonjour,

Une proposition (hors sujet ?).

Réalisée avec TCD et segment dans un tableau structuré.

Le segment permet une multi sélection.

Cdlt.

12tttt.xlsm (29.30 Ko)

Salut zinelamri, salut Jean-Eric,

à tester:

Sub Filtre()
Dim derln, ln, lgn, i, j As Long
    With Sheets("Liste")
        Application.ScreenUpdating = False
        Range("A13:M100").ClearContents
        derln = .Range("A" & Rows.Count).End(xlUp).Row
        .Rows("3:" & derln).EntireRow.Hidden = False
        i = 0
For j = 6 To 8
        For ln = 11 To derln

            If .Range("A" & ln) = Sheets("Fac").Range("I" & j) Then
                i = i + 1
                lgn = Range("B30").End(xlUp)(2).Row
                .Range("A" & ln & ":M" & ln).Copy Range("A" & lgn)
                Range("B" & lgn) = i
           End If
        Next ln
Next j
  End With
End Sub

Salut zinelamri,

Salut l'équipe,

! NON TERMINÉ !

Je fais appel à l'équipe car je ne pige pas pourquoi, dans le code ci-dessous, UNION ne fonctionne pas!

Dans la boucle, rCells, le RANGE, semble se vider entre deux valeurs !!

Aucune protection, ni ciblage de cellule : double-clic sur un n° de facture en 'FAC' pour démarrer la macro.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim rCells As Range
'
Cancel = True
iNum = Target
With Worksheets("Liste")
    For x = 11 To 27
        If .Cells(x, 1) = iNum Then
            If rCells Is Nothing Then
                Set rCells = .Range("A" & x).Resize(1, 13)
            Else
                Set rCells = Union(.Range("A" & x).Resize(1, 13), rCells)
            End If
        End If
    Next
End With
Range("A13").Resize(Range("A" & Rows.Count).End(xlUp).Row, 13).Value = ""
Range("A13").Resize(rCells.Rows.Count, 13).Value = rCells.Value
'
End Sub

Grand merci à celui qui m'expliquera!

A+

bonjour curulis57, m3ellem1 , Jean-Eric

Bonjour Le forum

Merci à tous pour votre aide.

la proposition de mimi est plus proche, il manque l'ordre

Le condition est

L'ordre est selon la première cellule, puis la deuxième, puis la troisième.

veuillez trouver en pièce jointe résultat souhaité.

merci encore une fois pour votre collaboration.

cordialement

Bonjour à toutes et tous,

Une mise à jour, avec le tri en fonction du rang d'apparition de Ref.

Cdlt.

11tttt.xlsm (30.19 Ko)

[[/quote]

bonjour curulis57, m3ellem1 , Jean-Eric

Bonjour Le forum

Merci à tous pour votre aide.

la proposition de m3ellem1 est plus proche, il manque l'ordre

Le condition est

L'ordre est selon la première cellule, puis la deuxième, puis la troisième.

veuillez trouver en pièce jointe résultat souhaité.

merci encore une fois pour votre collaboration.

cordialement

bonjour curulis57, m3ellem1 , Jean-Eric

Bonjour Le forum

Merci à tous pour votre aide.

la proposition de m3ellem1 est plus proche, il manque l'ordre

Le condition est

L'ordre est selon la première cellule, puis la deuxième, puis la troisième.

veuillez trouver en pièce jointe résultat souhaité.

merci encore une fois pour votre collaboration.

cordialement

Salut zinelamri,

mais l'ordre est bien respécté non?

20tttt-new.xlsm (26.99 Ko)

Re Bonjour m3ellem1

C'est exactement ce que je veux! ! !

Un grand merci à vous pour votre aide.

Bien cordialement.

Rechercher des sujets similaires à "vba filtre colonne criteres"