PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAAutofilterAutofilter
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2009-01-14 21:01
 
Hej
Kör autofilter på, 10 st kolumner. Har spelat in ett makro som återställer alla och som sista åtgärd sorterar kolumn B i stigande och sedan kolumn A i stigande. När man ser koden upplevs den som onödigt stor och krånglig. Prövade att göra ett makro som tar fram ”visa alla”. Men om alla filter står i normalläge då man startar makrot får man körfel. Någon klok som har en idé?
Nytt inlägg
 2009-01-14 21:26
 

Det skulle underlätta om du skickade med koden i ett inlägg.

I princip så ska det räcka med:

 

Range("A2:G100").Autofilter Field:=1
Range("A2:G100").Autofilter Field:=2
Range("A2:G100").Autofilter Field:=3
...

Eller i en loop:

Dim i As Integer
For i = 1 To 10
    Range("A2:G100").Autofilter Field:=i
Next i

För att stänga av autofilter. Observera att "A2:G100" förmodligen måste bytas ut. En enkel lösning är att ange en cell i rubriken (säg "A2"), och använda "CurrentRegion":

Dim i As Integer
For i = 1 To 10
    Range("A2").CurrentRegion.Autofilter Field:=i
Next i

Man får exprimentera lite med det, för att se vad som passar bäst i det enskilda fallet.

När jag testar detta får jag inga körfel när den är i normalläge. Men som sagt; visa lite kod, så är det enklare att konstatera vad som blir fel.

Nytt inlägg
 2009-01-14 21:36
 

Hej Dragos,

Detta kanske hjälper dig. Kod nedan gör en koll om listan är filtrerad. Kollen jämför antal synliga celler med innehåll i kolumnen med antal värden i kolumnen totalt och återställer bara om dessa skiljer. På så sätt undviks felmeddelanden.  (Välj annan kolumn än A-kolumnen om denna inte innehåller värden)

If Application.CountA(Range("A:A")) <> Application.Subtotal(103, Range("A:A")) Then
        ActiveSheet.ShowAllData
End If

Att i makrot slå av autofiltret och därefter sätta på det igen borde också fungera bra om du vill återställa.

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAAutofilterAutofilter

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter