Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datenliste nach Kriterien auf Tabellenblätter aufteilen

Datenliste nach Kriterien auf Tabellenblätter aufteilen
20.07.2024 15:12:13
Michael Folz
Hallo liebe Experten,

ich habe eine Datei mit einem Tabellenblatt. Auf diesem befinden sich mehrere hundert Datensätze (in Zeilen). In Spalte A befindet sich der Klassenbezeichner (z. B. 11x), in Spalte B der Nachname, in C der/die Vorname/n, in D - Z die weiteren Datenfelder. In Zeile 1 stehen die Spaltenbezeichner "Klasse", Nachname", "Vorname", usw. Zu jeder Person gibt es u. U. mehrere Datensätze, (dann jew. mit identischen Einträgen in A, B und C). Hier eine Musterdatei: https://www.herber.de/bbs/user/171135.xlsx

Pro Person soll in derselben Datei/Arbeitsmappe ein Tabellenblatt mit den kompletten Rohdatensätzen erzeugt und am besten mit "Nachname&Vorname/n" benannt werden. Am allerbesten sollten diese alle dann noch automatisch als PDF gespeichert werden.

Könnte mir da jemand helfen?

Mit freundlichen Grüßen
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenliste nach Kriterien auf Tabellenblätter aufteilen
20.07.2024 19:20:52
Yal
Hallo Michael,

genau gesehen wird eine Datei nicht in einem PDF gespeichert, sondern gedruckt.
Diese kleine Unterschied kann einem auf neuen Ideen bringen: per Makro die Liste auf einem Element filtern, dann als PDF drucken, neufiltern, drucken, usw.

Du kannst dabei den Makrorekorder laufen lassen und anschließend den Code anschauen. So kannst Du ableiten, wie alle einzelne Liste in je eine PDF gelangen können.

VG
Yal
Anzeige
Das geht auf...
22.07.2024 15:25:33
Case
Moin, :-)

... verschiedene Weisen. Ich habe hier drei Lösungen rumliegen (Formel, VBA, Power Query).

"Welches Schweinderl hätten's denn gern?" ;-)

Servus
Case
AW: Das geht auf...
22.07.2024 21:01:50
Michael Folz
Hallo Case,

bevor ich die Makro-/VBA-Lösungen ausprobiere: Wenn das wirklich mit Formeln geht, würde mich das vorrangig interessieren.

Mit freundlichen Grüßen
Michael
Anzeige
Also im Anhang - ZIP-Datei...
22.07.2024 23:21:00
Case
Moin, :-)

... sind verschiedene Möglichkeiten: ;-)
https://www.herber.de/bbs/user/171180.zip

Nur_mit_Formeln.xlsx
In A2 ist eine Spill-Formel.
In K1 eine sortierte Liste der Namen ohne Mehrfache.
Diese Liste benutze ich für das DropDown (Daten - Datentools - Datenüberprüfung) in I1.
In M1 ist der dynamische Druckbereich - brauche ich im Namensmanager.
Für den Druckbereich schaue dir auch den Namensmanager (Formeln - Namens-Manager) an.

PQ_Power_Query.xlsx
Rein Power Query.
Du musst nach der Namensauswahl noch in das Blatt tblQ wechseln und da in die Daten "Rechte Maustaste" und "Aktualisieren" wählen.
Dann drucken.

PQ_Power_Query_mit_VBA.xlsb
Hier wird das Power Query mit VBA "unterstützt".
Nach der Namenswahl wird der "Refresh" durchgeführt und gleich als PDF gespeichert.
Speicherpfad ist der gleiche wie die Exceldatei.

Mit_VBA.xlsb
Hier ist eine reine VBA Lösung drin.

Servus
Case
Anzeige
AW: Datenliste nach Kriterien auf Tabellenblätter aufteilen
22.07.2024 15:30:57
daniel
Hi
willst du ein PDF in dem alle Blätter gesammelt sind oder brauchst du für jeden Namen ein eigenes PDF?
Gruß Daniel
AW: Datenliste nach Kriterien auf Tabellenblätter aufteilen
20.07.2024 20:17:55
JoWE
Hallo Michael,

vielleicht so::
Zuerst machst Du auf jeden Fall eine Sicherheitskopie Deiner Arbeitsmappe
Die folgenden drei Makros kopierst Du in die VBA-Umgebung deiner Arbeitsmappe in ein Modul,
dann startest Du das Makro 1 welches nacheinander Makro 2 und Makro 3 aufruft und auch die PDF-Dateien erzeugen sollte.
!!!! Achte aber darauf die Pfadangabe im Makro 2 anzupassen !!!!
UND: Wenn Du viele unterschiedliche Familien- und Vornamen hast, kann das dauern!!!


Option Explicit

'Makro 1
Sub eindeutigFiltern()
Dim ze As Long
For ze = 2 To Cells(2, 2).End(xlDown).Row
Cells(ze, 10) = Cells(ze, 2)
Cells(ze, 11) = Cells(ze, 3)
Next
Columns("J:K").Select
ActiveSheet.Range("$J$1:$K$746").RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
Call Doit
End Sub

'Makro 2
Sub Doit()
Dim ze As Long
Dim sbFN As String
Dim sbVN As String
For ze = 2 To 6
sbFN = Cells(ze, 10)
sbVN = Cells(ze, 11)
Call filtern_in_neue_Tabelle(sbFN, sbVN)
Next
End Sub

'Makro 3
Sub filtern_in_neue_Tabelle(FN, VN)
Dim myWb As Workbook
Dim myTBMain As Worksheet
Set myWb = ThisWorkbook
Set myTBMain = myWb.Sheets(1)
With myTBMain
.Range("$A:$G").AutoFilter Field:=2, Criteria1:=FN
.Range("$A:$G").AutoFilter Field:=3, Criteria1:=VN
.UsedRange.Range("A:G").Copy
End With
myWb.Sheets.Add After:=Sheets(Sheets.Count)
With ActiveSheet
.Name = FN & "_" & VN
.Paste
.[A1].Select
Application.CutCopyMode = False
End With

'Achtung PfadName anpassen!!!!
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\TEMP\" & ActiveSheet.Name _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

myTBMain.Select
With myTBMain
.Range("A1").Select
.AutoFilterMode = False
End With

End Sub


Gruß
Jochen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige