24. august 2011 - 12:25Der er
11 kommentarer og 1 løsning
Overføre værdier i et tekstfiltre til et andet tekstfiltre
Hej alle
Jeg har et stort problem med at benytte værdierne i autofilter i et andet regneark uden at skulle markere de værdier, som jeg har behov for igen.
Sagen er at jeg har en kollonne, som indeholder 30 forskellige værdier blandt ca. 200 rækker. Så benytter jeg autofilter til at markere de rækker, som jeg vil have vist. Lad os sige 15 ud af de 30 værdier er markeret i filtret, så der bliver vist 100 rækker. Nu vil jeg gerne med en makro eller lignende kunne kopiere de værdier, som er markeret. Altså i selve filterindstillerne (de 15 værdier), og ikke i værdierne i cellerne (de 100).
Filter indstillingerne vil jeg så gerne bruge i et andet faneblad, så jeg nem kan få den samme filtrering.
Kan man fx. ikke kopiere eller aflæse indstillingerne et sted og flytte dem, så de på en eller anden måde kan læses ind i filterindstillingerne et andet.
Hvis dette skal automatiseres, så kan der laves en makro (VBA-kode).
Mht. at gemme og genbruge filterindstillingerne på et andet faneblad, så er jeg ikke helt med på, hvad du ønsker. Skal dataområdet (og dermed indstillingen af filteret) være dubleret eller hvad tænker du på?
Sub test() Dim wks As Worksheet Set wks = ActiveSheet Dim i As Integer For i = 1 To wks.AutoFilter.Filters.Count If wks.AutoFilter.Filters(i).On Then MsgBox wks.AutoFilter.Filters(i).Criteria1 End If Next End Sub
Den viser hvilke kriterier der er sat.
Og sådan her kan du sætte kriterie på et filter fra VBA
Sub FilterTo2Criteria() With Sheet1 .AutoFilterMode = False .Range("A1:D1").AutoFilter .Range("A1:D1").AutoFilter Field:=2, Criteria1:=">=35", _ Operator:=xlAnd, Criteria2:="<=45"
Det er ikke data fra cellerne, jeg ønsker at overføre. Det er de værdier, som er markeret i filterindstillingerne.
Jeg har et regneark med 200 rækker, hvor en af kollonerne indeholder et navn til hver række. Der er 30 forskellige navne. Jeg vælger nu 5 navne i filterindstillingerne, som jeg ønsker at se. Jeg har så et andet regneark med 200 rækker og de samme navne (som i det første ark) i en kollonne. Nu ønsker jeg på en eller anden måde, at kunne benytte de samme filterindstillinger i det nye ark, som jeg brugte i det første ark. Altså de 5 navne.
Kunne man fx. udlæse værdierne. Det kan jeg godt finde ud af (fx med den metode, som er nævnt af natkatten, men jeg kan ikke finde ud af, at få værdierne lagt ind i det nye filter.
Sub Flyt_filter() Worksheets(2).Range("A1").AutoFilter Field:=1, Criteria1:=Worksheets(1).AutoFilter.Filters(1).Criteria1, Operator:=xlFilterValues End Sub
Flytter filteret på første felt fra første worksheet til andet worksheet
Prøv følgende. Antager at du har de værdier der skal sættes filter på står i F2:Fx
Sub SetFilter() Dim Crit() As String Dim c As Range Dim i As Integer i = 1 For Each c In Range("F2", Range("F65536").End(xlUp)).Cells ReDim Preserve Crit(i) Crit(i) = c.Value i = i + 1 Next Range("A1").AutoFilter Field:=1, Criteria1:=Crit, Operator:=xlFilterValues End Sub
Mange tak. Det er super, og det virker. Det er fantastisk. Nu har jeg kun lige et lille spørgsmål tilbage.
Kunne man få koden til at hente værdierne på et andet ark. Jeg har et ark som hedder "Hovedområder", men nu har jeg forsøgt på alle mulige måder, men jeg kan ikke få "F2" til at til "hovedområder F2".
Sub SetFilter() Dim Crit() As String Dim c As Range Dim i As Integer i = 1 With Worksheets("Hovedområder") For Each c In .Range("F2", .Range("F65536").End(xlUp)).Cells ReDim Preserve Crit(i) Crit(i) = c.Value i = i + 1 Next end with Range("A1").AutoFilter Field:=1, Criteria1:=Crit, Operator:=xlFilterValues End Sub
Det virker perfekt. Tusinde mange tak!! Hvordan giver jeg point?
Har du erfaring med at genere en powerpoint præsentation med data fra excel. Atså således at jeg fra excel afvikler noget makro eller VBA som laver en PPT?
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.