Łukasz
Majcherek
Analityk sprzedaży,
Kupiec Sp. z o.o.
Temat: Filtrowanie zaawansowane - VBA Excel
Witajcie,jestem tutaj nowy, więc od razu przepraszam za wszelkie błędy.
Mam plik "Makro5" (w załączniku) w którym stworzyłem makro "UkryjWiersze"ukrywające wszystkie puste wiersze:
Option Explicit
Dim rwsHdn As Range
Sub UkryjWiersze()
Dim i As Long
Dim Iscorr As Boolean
Dim tb As Variant
Set tb = Range("C8:C478")
Iscorr = False
For i = 8 To 478
If tb(i, 0) = "" Or Iscorr Then
Iscorr = True
RwsToHidden Cells(i, 1)
End If
Next i
On Error Resume Next
rwsHdn.EntireRow.Hidden = True
Set rwsHdn = Nothing
End Sub
Private Sub RwsToHidden(xcel As Range)
If rwsHdn Is Nothing Then
Set rwsHdn = xcel
Else
Set rwsHdn = Union(rwsHdn, xcel)
End If
End Sub
Jednocześnie mam wpisany kod na filtrowanie kolumy P oraz N po kryteriach w zakresie M4:P4:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n, p
If Target.Count = 1 And Not Intersect(Target, Range("M4:P4")) Is Nothing Then
Application.ScreenUpdating = False
If Me.FilterMode Then Me.ShowAllData
n = Range("N4").Value
p = Range("P4").Value
Application.EnableEvents = False
If n = "" Then
Range("Q4").Value = ""
ElseIf IsNumeric(n) Then
Range("Q4").Value = Range("M4").Value & n
Else
Range("Q4").Value = Range("M4").Value & Mid(n, 2)
End If
If p = "" Then
Range("R4").Value = ""
ElseIf IsNumeric(p) Then
Range("R4").Value = Range("O4").Value & p
Else
Range("R4").Value = Range("O4").Value & Mid(p, 2)
End If
If n <> "" And p <> "" Then
Range("N7:P476").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("Q3:R4")
ElseIf n <> "" Then
Range("N7:N476").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("Q3:Q4")
ElseIf p <> "" Then
Range("P7:P476").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("R3:R4")
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
Chodzi o to by filtry zaawansowane dla kolumn P oraz N - działały tylko na widoczne wiersze (nie odkrywały mi wierszy które ukryło mi makro "UkryjWiersze") oraz założeniu filtra zwykłego w zakresie B7:L7 - ale tylko dla widocznych wierszy
Dodałbym załącznik ale nie wiem jak ??