Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenschnitte per VBA

Forumthread: Datenschnitte per VBA

Datenschnitte per VBA
18.08.2017 08:18:15
AkaTosh

Guten morgen, werte Gemeinde!
Folgende Frage: Ich habe eine Pivottabelle, auf der ein Datenschnitt liegt (Städtenamen). Bei   _
_
einem Wechsel im Datenschnitt wird eine Übersicht für die jeweilige Stadt erzeugt. Diese  _
exportiere ich dann per Makro in eine einzelne PDF. So weit so gut.
Ich möchte nun gerne, um nicht 300 mal den Datenschnitt weiter zu klicken und das Export-Makro   _
_
auszuführen, per VBA eine Funktion haben die, vereinfacht gesagt, folgendes tut:
Nächsten Datensatz im Datenschnitt auswählen, PDF erstellen, Nächsten Datensatz wählen; bis der  _
_
letzte Punkt im Datenschnitt erreicht ist.
Jemand eine Idee?

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datenschnitte per VBA
18.08.2017 09:00:53
Michael
Hallo!
Die Elemente eines Datenschnitts kannst Du schmematisch so durchgehen:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim i As SlicerItem
With Wb.SlicerCaches("Städte") 'Datenschnitt-Name anpassen
.ClearManualFilter 'Datenschnitt-Filter löschen
For Each i In .SlicerItems 'Datenschnitt-Elemente durchgehen
i.Selected = True 'Aktuelles Element setzen
'PDF-Export
i.Selected = False 'Aktuelles Element wieder deaktiveren
Next i 'nächstes Element
End With
End Sub
LG
Michael
Anzeige
AW: Datenschnitte per VBA
21.08.2017 08:34:48
AkaTosh
Danke Michael! Funktioniert gut!
Gern, Danke für die Rückmeldung, owT
21.08.2017 09:06:31
Michael
;
Anzeige

Infobox / Tutorial

Datenschnitte in Excel per VBA automatisieren


Schritt-für-Schritt-Anleitung

Um Datenschnitte in einer Pivottabelle per VBA zu automatisieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code durchläuft alle Elemente eines Datenschnitts und exportiert jeweils die entsprechende Übersicht in eine PDF-Datei.

  1. Öffne deine Excel-Datei mit der Pivottabelle.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  4. Kopiere den folgenden Code in das Modul:
Sub ExportiereStadtPDFs()
    Dim Wb As Workbook: Set Wb = ThisWorkbook
    Dim i As SlicerItem
    With Wb.SlicerCaches("Städte") 'Datenschnitt-Name anpassen
        .ClearManualFilter 'Datenschnitt-Filter löschen
        For Each i In .SlicerItems 'Datenschnitt-Elemente durchgehen
            i.Selected = True 'Aktuelles Element setzen
            ' Hier den PDF-Export-Befehl einfügen
            ' Beispiel: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Pfad\zu\deiner\Datei_" & i.Name & ".pdf"
            i.Selected = False 'Aktuelles Element wieder deaktivieren
        Next i 'nächstes Element
    End With
End Sub
  1. Passe den Namen des Datenschnitts und den Pfad für die PDF-Datei an.
  2. Führe das Makro aus, indem Du F5 drückst oder das Makro aus dem Excel-Menü startest.

Häufige Fehler und Lösungen

  • Fehler: "Datenschnitt-Name nicht gefunden"

    • Stelle sicher, dass der Name des Datenschnitts im Code korrekt ist. Du kannst das im Excel-Datenbereich überprüfen.
  • Fehler: PDF wird nicht erstellt

    • Prüfe den angegebenen Pfad. Er sollte existieren und Du solltest die Berechtigung zum Schreiben in diesem Verzeichnis haben.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du Datenschnitte auch manuell durchgehen und die PDF-Dateien einzeln speichern. Allerdings kann das sehr zeitaufwendig sein, besonders bei einer großen Anzahl von Städten.


Praktische Beispiele

Angenommen, Du hast eine Pivottabelle mit Städten und möchtest für jede Stadt eine PDF-Datei erstellen. Verwende den obigen Code und passe den Dateinamen im Exportbefehl an, um eine Datei für jede Stadt zu generieren, wie:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\PDFs\" & i.Name & ".pdf"

Tipps für Profis

  • Batch-Verarbeitung: Überlege Dir, den Export in einem Unterordner zu speichern, um die Übersichtlichkeit zu erhöhen.
  • Fehlerprotokollierung: Füge eine einfache Fehlerbehandlung hinzu, um Probleme beim PDF-Export zu protokollieren, falls sie auftreten.

FAQ: Häufige Fragen

1. Wie kann ich die PDF-Dateien automatisch benennen? Du kannst den Dateinamen im Exportbefehl dynamisch mit i.Name anpassen, um den Namen des aktuell ausgewählten Datensatzes zu verwenden.

2. Was mache ich, wenn der Datenschnitt mehrere Filter hat? In diesem Fall musst Du sicherstellen, dass Du alle gewünschten Filter im Code berücksichtigst. Diese können mit i.Selected = False zurückgesetzt werden, bevor der nächste Datensatz ausgewählt wird.

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