Anzeige
Archiv - Navigation
1844to1848
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

test

test
19.08.2021 10:10:31
Holly
Hallo liebe Experten,
ich ich habe aktuell ein Problem mit einem Makro.
Das Makro erkennt alle gleichen Einträge in einer Spalte und erstellt dann für jede Filterung einen Ausdruck (per Schleife).
Das klappt bis dahin sehr gut.
Allerdings reichen meine Fähigkeiten nicht aus, um eine weitere Spalte/Filterung mit einzubeziehen, z.B: Spalte E.
Fiktives Beispiel:
Eine Grundtabelle mit Auftragsanlagen.
In Spalte D gibt es 8 verschiedene Sachbearbeiter. Das Makro filtert diese 8 Bearbeiter nacheinander und erstellt 8 Ausdrucke.
Das leistet das Makro auch aktuell.
Nun erstellt jeder Bearbeiter Aufträge für zwei verschiedene Kunden. Es sollen also 16 Ausdrucke erfolgen, also je Bearbeiter und Kunden separat,
also eine zusätzliche Filterung auf den Kunden (Spalte E).
Codeschnipsel für einen Filter und Ausdruck:

Sub Jeden_SB_drucken()
Dim arrSB
Dim SB
'--- Liste der SBs erstellen und in Array-Variable Speichern
Range("D:D").AdvancedFilter xlFilterCopy, , Range("iv1").Cells, True
Range("iv1").Delete shift:=xlUp
arrSB = Range("iv1").CurrentRegion
Range("iv1").EntireColumn.Delete
'--- Jeden SB filtern und drucken
For Each SB In arrSB
Range("A1").AutoFilter Field:=4, Criteria1:=SB
ActiveSheet.PrintOut
Next
ActiveSheet.ShowAllData
End Sub
Danke für Eure Hilfe.
Liebe Grüße!

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

Betreff
Datum
Anwender
Anzeige
AW: test
19.08.2021 17:34:01
Holly
Ah....
Netter Titel :D
Es sollte irgendwie was mit "Autofilter mit Druck in Verbindung mit mehreren Filtern nacheinander abarbeiten" oder so heißen.
Ich hoffe mal trotzdem, dass jemand etwas mit dem Problem anfangen kann.
Grüße,
Holly
AW: test
19.08.2021 21:55:30
Yal
Hallo Holly,
die Schwioerigkeit liegt an der Bildung der Liste der Filter. Mit den "Collection" und deren eindeutige Schlüssel kann man die Wiederholungen vermeiden.

Private Kriterien As Collection
Private WS As Worksheet
Const cTrenner = ";"
Sub Jeden_SB_drucken()
Dim K, S, i
Set WS = Worksheets("Hier der Name des Blattes")
'--- Liste der eindeutige Kombninationen erstellen und in Array-Variable Speichern
Kriterien_sammeln "1;4;5" '1:A, 4:D, 5:E
'--- Jeden SB filtern und drucken
For Each K In Kriterien
i = 0
For Each S In Split("1;4;5", cTrenner)
WS.Range("A1").AutoFilter Field:=Asc(S) - 64, Criteria1:=K(i)
i = i + 1
Next
WS.PrintOut
WS.ShowAllData
Next
End Sub
Private Sub Kriterien_sammeln(Spalten As String)
Dim S, Z
Dim Key
On Error Resume Next
Set Kriterien = New Collection
For Z = 2 To WS.Range("A9999").End(xlUp).Row 'alle Zeilen
Key = ""
For Each S In Split(Spalten, cTrenner) 'übergegebenen Spalten
Key = Key & cTrenner & WS.Cells(Z, CLng(S))
Next
'        Collection.Add Item, Key 'da Key eindeutig sein muss, kommen doppelte Kombinaitone nur einmal vor.
Kriterien.Add Key, Key
Next
End Sub
VG
Yal
Anzeige
AW: test
20.08.2021 09:59:17
Holly
Hallo Yal,
danke für deine Hilfe + Antwort.
Ich bekomme jedoch eine Fehlermeldung :(
Ich habe jetzt mal eine Beispieltabelle erstellt und hier im Forum hochgeladen.
https://www.herber.de/bbs/user/147715.xlsm
Grüße,
Holly

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige