Avatar billede larsv Nybegynder
24. august 2011 - 12:25 Der 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.

Hjææælp

Hilsen fra Lars
Avatar billede natkatten Mester
24. august 2011 - 12:46 #1
Som jeg læser det, er der vel i virkeligheden tale om flere ting, som du ønsker.

Men for nu at tage spørgsmålet om kun at markere og kopiere de filtrerede værdier, så kan det løses som beskrevet her:

http://office.microsoft.com/da-dk/excel-help/kopiering-udelukkende-af-synlige-celler-HA010244897.aspx

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å?
24. august 2011 - 12:49 #2
Prøv at lege lidt med koden her

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"

    End With
End Sub
(sidste del hentet fra http://www.ozgrid.com/VBA/autofilter-vba-criteria.htm)
Avatar billede larsv Nybegynder
25. august 2011 - 10:15 #3
Tak for indlæg.

Jeg prøver lige at være mere konkret.

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.

Jeg håber, at nogle kloge kan hjælpe mig!
Avatar billede larsv Nybegynder
25. august 2011 - 10:18 #4
Hej Thor

Jeg prøver lige dit forslag, men jeg kan ikke se, hvad den gør? Jeg er ikke så stærk i VBA.

Vil den kunne løse mit problem, når du ser mit nyeste indlæg?

Hilsen fra Lars
25. august 2011 - 11:10 #5
Helt kort og uden nogen form for fejlhåndtering


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
Avatar billede larsv Nybegynder
25. august 2011 - 13:16 #6
Kære Thor

Mange tak for dit forslag, som jeg ikke helt kan få til at virke, som jeg ønsker, men det har sendt mig i den rigtige retning.

Jeg vil forsøge mig med følgende:

1. Værdierne som skal være i filtret har jeg i en celle, men det kræver, at jeg ved hvordan jeg adskiller værdierne.

2. eller i flere celler, men så skal jeg kende koden til at få flere værdier sat ind i filtret samtidigt.

Pt er jeg nået til:

Sub Indsæt_filterindstillinger()
     
    Range("F2").Select
    Selection.Copy
    Selection.AutoFilter Field:=2, Criteria1:=ActiveCell.Value, Operator:=xlOr
       
    Range("G2").Select
    Selection.Copy
    Selection.AutoFilter Field:=2, Criteria2:=ActiveCell.Value, Operator:=xlOr

End Sub

Ovenstående sætter fint F2 værdien ind, men G2 kommer til at erstatte den første værdi (f2-værdien), så der kun er en værdi i filtret.

Jeg ved ikke nøjagtigt hvor mange værdier, som skal indsættes. Det svinger mellem 3 og 30.

Kan du den smarte løsning?
25. august 2011 - 13:40 #7
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
Avatar billede larsv Nybegynder
26. august 2011 - 09:24 #8
Heey Thor

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".

På forhånd tak!

Lars
26. august 2011 - 09:26 #9
Naturligvis

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
Avatar billede larsv Nybegynder
27. august 2011 - 08:38 #10
Heey Thor

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?

Hilsen Lars
27. august 2011 - 08:42 #11
Du giver point ved at acceptere det svar jeg gav sidst.

Excel til PowerPoint - jo det har jeg lavet en del af for nogle år siden og skal i uge 37 holde kursus i det.
Avatar billede larsv Nybegynder
27. august 2011 - 08:59 #12
Super - tak for løsningen
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

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