Anzeige
Archiv - Navigation
1900to1904
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 und drucken

filtern und drucken
09.10.2022 12:50:48
Henry
Hallo zusammen,
ich habe folgenden Code im Internet gefunden, der alle Daten in Spalte A der Reihe nach filtert und die gefilterten Daten jeweils druckt.
Der Code klappt perfekt.
Allerdings möchte ich den Code so anpassen, dass auch mehr als drei Spalten in der Tabelle stehen dürfen.
Leider bekomme ich den Code nicht dahingehend angepasst.
Es kommen beim Anpassen des Codes immer falsche Druckergebnisse.
Angenommen ich hätte 5 Spalten. Wie müsste der Code dann aussehen?
Außerdem frage ich mich, warum diese Zeile dort steht:
Range("A:A").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("D1"), Unique:=True
Warum muss erst kopiert werden?
Kann mir das jemand erklären?
VG
Henry

Sub FilternUndDrucken()
Dim arr()
Dim iRow As Integer
Range("A:A").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("D1"), Unique:=True
iRow = 2
Do Until IsEmpty(Cells(iRow, 4))
ReDim Preserve arr(iRow - 1)
arr(iRow - 1) = Cells(iRow, 4)
iRow = iRow + 1
Loop
Columns(4).ClearContents
For iRow = 1 To UBound(arr)
Columns(1).AutoFilter Field:=1, Criteria1:=arr(iRow)
ActiveSheet.PrintPreview
Next iRow
Range("A1").AutoFilter
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: filtern und drucken
09.10.2022 13:34:48
Nepumuk
Hallo Henry,
sollen die anderen Spalten auch gefiltert werden? Oder wie ist das:

Angenommen ich hätte 5 Spalten. Wie müsste der Code dann aussehen?
zu verstehen?
Gruß
Nepumuk
AW: filtern und drucken
09.10.2022 13:39:07
Henry
Hallo Nepumuk,
ja genau.
Allerdings werden doch die anderen Spalten automatisch gefiltert wenn ich auf die Spalte A filtere, oder?
AW: filtern und drucken
09.10.2022 13:49:17
Nepumuk
Hallo Henry,
ja genau. Alos?
Gruß
Nepumuk
AW: filtern und drucken
09.10.2022 13:50:34
Henry
Hallo Nepumuk,
Das Problem ist wenn ich weitere Spalten hinzufüge klappt das nicht mehr.
Dann wird irgendetwas mitten in die Tabelle kopiert und alles ist durcheinander.
Gruß
Henry
Anzeige
AW: filtern und drucken
09.10.2022 13:53:19
Nepumuk
Hallo Henry,
beschreib doch mal genauer, was du vor hast.
Gruß
Nepumuk
AW: filtern und drucken
09.10.2022 14:02:53
Henry
Hallo Nepumuk,
ich habe mal 2 Dateien beigefügt.
In der ersten Datei "test1" klappt das Makro einwandfrei und alle Daten in Spalte A werden korrekt gefiltert und anschließend die Filterungen jeweils gedruckt.
https://www.herber.de/bbs/user/155571.xlsm
In der zweiten Datei "test2" klappt es leider nicht mehr, da hier weitere Spalten hinzugekommen sind.
Ich muss also den Code entsprechend anpassen; weiß aber leider nicht wie.
https://www.herber.de/bbs/user/155572.xlsm
Viele Grüße
Henry
Anzeige
AW: filtern und drucken
09.10.2022 17:01:37
Nepumuk
Hallo Henry,
teste mal:

Option Explicit
Public Sub FilternUndDrucken()
Dim avntKeys As Variant, vntKey As Variant
Dim objCell As Range
Dim objDictionary As Object
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
For Each objCell In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
objDictionary.Item(Key:=objCell.Text) = vbNullString
Next
avntKeys = objDictionary.Keys
Set objDictionary = Nothing
For Each vntKey In avntKeys
Rows(1).AutoFilter Field:=1, Criteria1:=vntKey
ActiveSheet.PrintPreview
Next
Rows(1).AutoFilter
End Sub
Gruß
Nepumuk
Anzeige
AW: filtern und drucken
09.10.2022 17:11:10
Henry
Hallo Nepumuk,
es klappt perfekt! Genauso wie ich es mir vorgestellt habe.
Vielen, vielen Dank!
Liebe Grüße
Henry
AW: filtern und drucken
10.10.2022 05:50:30
Henry
Hallo Nepumuk,
noch eine Frage.
Wie müsste ich den Code abändern, wenn ich zum Beispiel nach Spalte C filtern möchte.
LG
Henry
AW: filtern und drucken
10.10.2022 08:53:48
Nepumuk
Hallo Henry,
dann ändere diese Zeile:

For Each objCell In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
und diese Zeile:

Rows(1).AutoFilter Field:=1, Criteria1:=vntKey
so:

For Each objCell In Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))

Rows(1).AutoFilter Field:=3, Criteria1:=vntKey
Gruß
Nepumuk
Anzeige
AW: filtern und drucken
09.10.2022 16:20:06
Henry
Hallo Nepumuk,
falls du die Dateien nicht öffnen möchtest, beschreibe ich dir gerne noch einmal wie ich mir das vorstelle.
Ich habe eine Liste mit sehr vielen Spalten.
In Spalte A stehen die Werte, nach denen gefiltert werden soll.
Es soll eine Schleife durchlaufen werden, bei der jeweils immer der nächste Werte in Spalte A gefiltert werden soll.
Anschließend soll die gefilterte Ansicht gedruckt werden.
Dann soll der nächste Wert gefiltert werden und diese Ansicht wieder automatisch gedruckt werden.
Und immer so weiter...
VG
Henry

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige