Pivottabelle in Excel nach DB-Abfrage mit VBA aktualisieren
Schritt-für-Schritt-Anleitung
Um eine Pivottabelle in Excel nach einer DB-Abfrage zu aktualisieren, kannst Du folgenden VBA-Code verwenden:
- Öffne das VBA-Editor-Fenster mit
ALT + F11
.
- Füge ein neues Modul hinzu: Klicke auf
Einfügen
> Modul
.
- Setze den folgenden Code in das Modul:
Sub AktualisierePivottabelle()
' DB-Verbindung aktualisieren
ActiveWorkbook.Connections("Monatsdaten").Refresh
' Pivottabelle aktualisieren
Sheets("Auswertung").PivotTables("PivotTable1").PivotCache.Refresh
End Sub
- Führe das Makro
AktualisierePivottabelle
aus.
Falls Deine Pivottabelle sich nicht aktualisiert, könnte das daran liegen, dass die Datenverbindung nicht abgeschlossen ist. Um sicherzustellen, dass die Pivottabelle aktualisiert wird, nachdem die DB-Abfrage durchgeführt wurde, setze BackgroundQuery
auf False
:
ActiveWorkbook.Connections("Monatsdaten").Refresh BackgroundQuery:=False
Häufige Fehler und Lösungen
-
Die Pivottabelle aktualisiert sich nicht:
Wenn Du den Befehl zur Aktualisierung der Pivottabelle direkt nach der Refresh-Anweisung ausführst, könnte die Datenverbindung noch nicht abgeschlossen sein. Achte darauf, den BackgroundQuery
-Parameter auf False
zu setzen.
-
Fehlermeldung bei BackgroundQuery:=False
:
Möglicherweise gibt es ein Problem mit der Verbindung zur DB. Überprüfe die Verbindungseinstellungen und stelle sicher, dass die Datenbank erreichbar ist.
Alternative Methoden
Eine alternative Methode, um die Pivottabelle zu aktualisieren, besteht darin, eine Zeitverzögerung einzurichten. Du kannst dies wie folgt tun:
Sub VerzögerteAktualisierung()
ActiveWorkbook.Connections("Monatsdaten").Refresh
Application.OnTime Now + TimeValue("00:00:05"), "PivotAktualisieren"
End Sub
Sub PivotAktualisieren()
Sheets("Auswertung").PivotTables("PivotTable1").PivotCache.Refresh
End Sub
Hier wird die Pivottabelle 5 Sekunden nach der Datenaktualisierung aktualisiert. Du kannst die Zeit anpassen, je nach Dauer Deiner SQL-Abfrage.
Praktische Beispiele
Angenommen, Du hast eine MySQL-Datenbank, die regelmäßig aktualisiert wird. Um die Pivottabelle in Deinem Excel-Dokument automatisch zu aktualisieren, könntest Du folgendes Beispiel verwenden:
Sub AutomatischeAktualisierung()
' DB-Abfrage durchführen
ActiveWorkbook.Connections("Monatsdaten").Refresh BackgroundQuery:=False
' Pivottabelle aktualisieren
Sheets("Auswertung").PivotTables("PivotTable1").PivotCache.Refresh
End Sub
Dieser Code sorgt dafür, dass die Pivottabelle aktualisiert wird, nachdem die Abfrage vollständig abgeschlossen ist.
Tipps für Profis
- Nutze die
OnTime
-Methode mit Bedacht, um die Performance Deiner Excel-Datei nicht zu beeinträchtigen.
- Überprüfe regelmäßig die Verbindungen zu Deiner Datenbank, um sicherzustellen, dass alles reibungslos funktioniert.
- Dokumentiere Deine VBA-Codes gut, damit Du und Deine Kollegen später leicht Änderungen vornehmen können.
FAQ: Häufige Fragen
1. Wie kann ich überprüfen, ob die SQL-Abfrage abgeschlossen ist?
Eine Möglichkeit besteht darin, eine Schleife zu verwenden, die den Status der Abfrage überwacht. Allerdings kann dies die Performance beeinträchtigen.
2. Was tun, wenn die Pivottabelle immer noch nicht aktualisiert wird?
Überprüfe die Verbindungseinstellungen und stelle sicher, dass die Daten korrekt geladen werden. Außerdem kannst Du den BackgroundQuery
-Parameter anpassen.
3. Welche Excel-Version benötige ich?
Der gezeigte VBA-Code sollte in Excel 2010 und späteren Versionen funktionieren. Achte darauf, dass die Datenverbindungen korrekt eingerichtet sind.