Skapa filtrerade listor

Här visas ett exempel på hur vi relativt enkelt och generellt kan filtrera listor mha av VBA. Resultatet för exemplet blir en unik lista.

Se också Skapa unik lista med villkor

Option Explicit

 Sub Skapa_Filtrerad_Lista()

   '© 2002 Alla rättigheter XL-Dennis

   Dim wbBok As Workbook

   Dim wsBlad1 As Worksheet, wsBlad2 As Worksheet

   Dim rnKalla As Range, rnMal As Range

 

   Set wbBok = ThisWorkbook

   Set wsBlad1 = wbBok.Worksheets("Blad1")

   Set wsBlad2 = wbBok.Worksheets("Blad2")

 

   'Tilldelar variabeln rnKalla A-kolumnens ifyllda cellområde.

   With wsBlad1

      Set rnKalla = .Range(.Range("A1"), .Range("A65536").End(xlUp))

   End With

 

   With wsBlad2

      Set rnMal = .Range("A1")

   End With

 

   Application.ScreenUpdating = False

 

   'Filtrerar listan på plats.

   rnKalla.AdvancedFilter Action:=xlFilterInPlace, Unique:=True

 

   'Definierar om variabeln rnKalla så att den nu omfattar hela tabellen.

   With wsBlad1

      Set rnKalla = .Range(.Range("A1"), .Range("B65536").End(xlUp))

   End With

 

   'Ta bort all data från målområdet.

   rnMal.CurrentRegion.ClearContents

 

   'Kopierar den unika listan.

   rnKalla.SpecialCells(xlCellTypeVisible).Copy Destination:=rnMal

 

   'Återställer den ursprungliga listan.

   wsBlad1.ShowAllData

 

   Application.ScreenUpdating = False

End Sub