HERBERS Excel-Forum - die Dialoge

Thema: Gefilterte Daten einlesen

Home
Über VBA wird ein Filter gesetzt. Nur die sichtbaren Daten werden in eine mehrspaltige ListBox eingelesen werden. Gefilterte Daten einlesen
  • Prozedur: UserForm_Initialize
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Gefilterte Daten einlesen
  • Ablaufbeschreibung:
    • Variablendeklaration
    • Bildschirmaktualisierung ausschalten
    • Filter über eine InputBox abfragen und in eine String-Variable einlesen
    • Wenn keine Eingabe erfolgte, Prozedur abbrechen
    • Autofilter setzen
    • Alle nicht ausgeblendeten Zellen kopieren
    • Neue Arbeitsmappe öffnen
    • Kopierte Zellen einfügen
    • Kopfzeile löschen
    • Eingefügte Werte in ListBox einlesen
    • Temporäre Arbeitsmappe ungespeichert schließen
    • 1. Zeile der ListBox auswählen
    • Autofilter aufheben
    • Bildschirmaktualisierung einschalten
  • Code:

    
    Private Sub UserForm_Initialize()
       Dim sFilter As String
       Application.ScreenUpdating = False
       sFilter = InputBox("Filter:", , "Zeile 1*")
       If sFilter = "" Then Exit Sub
       Columns("A:A").AutoFilter Field:=1, Criteria1:=sFilter
       Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
       Workbooks.Add
       Range("A1").PasteSpecial xlPasteValues
       Rows(1).Delete
       lstDesignAuswahl.List = Range("A1").CurrentRegion.Value
       ActiveWorkbook.Close savechanges:=False
       lstDesignAuswahl.ListIndex = 0
       Columns("A:A").AutoFilter
       Application.ScreenUpdating = True
    End Sub