Avatar billede jime_boy Nybegynder
15. marts 2012 - 12:13 Der er 6 kommentarer og
1 løsning

VBA kode til at identificere filter rækker

Hej

Er der en af jer eksperter der kan hjælpe mig med at lave en stump VBA kode der kan identificere hvilken række et autofilter er sat på i et sheet?

Pft
Jime_boy
Avatar billede igoogle Forsker
15. marts 2012 - 13:10 #1
har ikke løsningen men du skal arbejde med SpecialCells(xlCellVisible) vil jeg mene..
Avatar billede jime_boy Nybegynder
15. marts 2012 - 14:09 #2
Ja det har du nok ret i... Jeg havde forestillet mig at skulle sætte filter til "alt" og vælge første data linje -1 det må jo være den række som filteret er sat op på.
Avatar billede KurtOA Praktikant
15. marts 2012 - 23:00 #3
Hej - måske er det noget som dette du søger...
Jeg kan ikke huske hvor jeg har fundet det men det virker for mig.

Kopier funktionen herrunder til et modul og indsæt formlen i cellerne over de kolonner der er i dit dataområde

HVis du fx har dine data i B3 og nedad
kan du indsætte denne formel i B1:  "=AutoFilter_Criteria(B3)"

Når din kolonne er filtreret vil B1 nu vise filtreringen ........

mvh Kurt

Function AutoFilter_Criteria(Header As Range) As String

' VBA Excel Funktion der i en celle kan vise (display) den eller de værdier der filtreres efter

' Indsæt formel som denne i celle: =AutoFilter_Criteria(B3)

Dim strCri1 As String, strCri2 As String

Application.Volatile

With Header.Parent.AutoFilter

        With .Filters(Header.Column - .Range.Column + 1)

            If Not .On Then Exit Function

                strCri1 = .Criteria1
            If .Operator = xlAnd Then
                strCri2 = " AND " & .Criteria2
            ElseIf .Operator = xlOr Then
                strCri2 = " OR " & .Criteria2
            End If

        End With

End With

AutoFilter_Criteria = UCase(Header) & ": " & strCri1 & strCri2
AutoFilter_Criteria = strCri1 & strCri2

End Function
Avatar billede jime_boy Nybegynder
16. marts 2012 - 10:51 #4
Det er desværre ikke helt løsningen. Det skal bruges i en Dynamisk GUI del som aflæser den tekst der er i overskrifterne (cellerne med autofilter på). Devs. at jeg som udgangspunkt ikke kender den række hvori rækken med autofilter er.
Avatar billede jime_boy Nybegynder
16. marts 2012 - 10:59 #5
Jeg har selv fundet ud af det nu

Med Application.ActiveSheet.AutoFilter.Range.Address returnere den den range som autofilteret er på hvor første række er "Overskrifterne".

1000-tak for input det inspirerede mig til at finde løsningen.
Avatar billede jime_boy Nybegynder
16. marts 2012 - 10:59 #6
svar
Avatar billede jime_boy Nybegynder
16. marts 2012 - 11:07 #7
Dvs den helt korrekte løsning blev

Application.ActiveSheet.AutoFilter.Range.Cells(1, 1).Row
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester