Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Filtern

Filtern
Max
Hallo,
ich habe folgendes Problem: ich habe regelmäßig einen SAP-Download mit der gleichen Spälten- aber unterschiedlicher Zeilenanzahl. Wie kann ich es automatisieren, dass auf 2 separaten Tabellenblättern jeweils nur die Zeilen angezeigt werden, die in der letzten Spalte eine 0 aufweisen und auf dem anderen Tabellenblatt alle anderen Zeilen (und das quasi automatisiert, ohne selbst den Filter einstellen zu müssen?
Vielen Dank vorab.
a b c d
01.01.2000 6 3 5
01.01.2000 7 2 5
01.01.2000 8 1 0
01.01.2000 9 3 0
01.01.2000 10 3 4
01.01.2000 11 1 3

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Filtern
08.08.2011 10:50:37
Marc
Moin!
So sollte es gehen...
Gruß, Marc
Sub testcase()
'Sheets(2).Cells.Clear
'Sheets(3).Cells.Clear
lz = Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile ermitteln
ls = Sheets(1).Cells(2, Columns.Count).End(xlToLeft).Column 'letzte Spalte ermitteln
z1 = 2
z2 = 2
For i = 1 To lz
If Cells(i, ls) = 0 Then
Sheets(1).Rows(i).Copy Destination:=Sheets(2).Rows(z1)
z1 = z1 + 1
Else
Sheets(1).Rows(i).Copy Destination:=Sheets(3).Rows(z2)
z2 = z2 + 1
End If
Next i
End Sub

AW: Filtern
08.08.2011 19:29:04
Max
Perfekt, vielen Dank für die schnelle Antwort!
AW: Filtern
08.08.2011 11:02:33
Tino
Hallo,
kannst mal diesen Code testen.
Sub Start()
Dim ArrayDaten, ArrayNull(), ArraySonsige()
Dim lngMaxCol&, nRow&, nCountNull&, nCountSo&, n&

With Sheets("Tabelle1") 'Quelle evtl. anpassen 
    'hier ab A2 evtl. anpassen, Zeile 1 Überschrift? 
    ArrayDaten = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 4)
End With

lngMaxCol = Ubound(ArrayDaten, 2)
Redim ArrayNull(1 To Ubound(ArrayDaten), 1 To lngMaxCol)
Redim ArraySonsige(1 To Ubound(ArrayDaten), 1 To lngMaxCol)

For nRow = 1 To Ubound(ArrayDaten)
    If ArrayDaten(nRow, lngMaxCol) = 0 Then
        nCountNull = nCountNull + 1
        For n = 1 To lngMaxCol
            ArrayNull(nCountNull, n) = ArrayDaten(nRow, n)
        Next n
    Else
        nCountSo = nCountSo + 1
        For n = 1 To lngMaxCol
            ArraySonsige(nCountSo, n) = ArrayDaten(nRow, n)
        Next n
    End If
Next nRow

'Ausgabe mit 0 
With Sheets("Tabelle2") 'Tabelle anpassen 
    'einfügen ab A2, Zeile 1 für Überschrift 
    .Range("A2", .Cells(.Rows.Count)).Resize(, 4).Clear
    If nCountNull > 0 Then
        With .Range("A2").Resize(Ubound(ArrayNull), lngMaxCol)
            .Cells = ArrayNull
            'evtl. sonstige Formatierung 
            '... 
        End With
    End If
End With

'Ausgabe sonstige 
With Sheets("Tabelle3") 'Tabelle anpassen 
    'einfügen ab A2, Zeile 1 für Überschrift 
    .Range("A2", .Cells(.Rows.Count)).Resize(, 4).Clear
    If nCountSo > 0 Then
        With .Range("A2").Resize(Ubound(ArraySonsige), lngMaxCol)
            .Cells = ArraySonsige
            'evtl. sonstige Formatierung 
            '... 
        End With
    End If
End With
End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige