Autovervollständigung über mehrere Tabellenblätter in Excel
Schritt-für-Schritt-Anleitung
-
Erstelle eine neue Arbeitsmappe: Öffne Excel und erstelle eine neue Arbeitsmappe, in der Du die Werte aus anderen Tabellenblättern konsolidieren möchtest.
-
Öffne die Quellarbeitsmappe: Stelle sicher, dass die Arbeitsmappe mit den Daten, die Du abrufen möchtest, geöffnet ist.
-
Füge das Makro ein: Gehe zu Entwicklertools
> Visual Basic
, füge das folgende Makro in ein allgemeines Modul ein:
Sub GetData_aus_D10()
Dim Zeile As Long
Dim rngZelle As Range
Dim wksZ As Worksheet
Dim wkbQ As Workbook, wksQ As Worksheet
Dim sZelleR1C1 As String
Set wkbQ = ActiveWorkbook
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wksZ = ActiveSheet
Set rngZelle = wksZ.Cells(2, 1) 'Zelle A2 - Zelle ab der die Formeln eingefügt werden sollen
sZelleR1C1 = "R10C4" ' Zelle $D$10 - Zelle deren Werte ausgelesen werden sollen in R1C1-Schreibweise
For Each wksQ In wkbQ.Worksheets
rngZelle.Offset(Zeile, 0).FormulaR1C1 = "='[" & wkbQ.Name & "]" & wksQ.Name & "'!" & sZelleR1C1
Zeile = Zeile + 1
Next
End Sub
-
Starte das Makro: Schließe den VBA-Editor und gehe zurück zu Excel. Starte das Makro über Entwicklertools
> Makros
, wähle GetData_aus_D10
und klicke auf Ausführen
.
-
Überprüfe die Ergebnisse: Deine neue Arbeitsmappe sollte nun die Werte aus Zelle D10 aller Tabellenblätter der Quellarbeitsmappe enthalten.
Häufige Fehler und Lösungen
-
Makro funktioniert nicht: Stelle sicher, dass die Quellarbeitsmappe geöffnet und aktiv ist, bevor Du das Makro startest.
-
Falsche Zellreferenzen: Überprüfe, ob die Zellreferenzen in der Formel korrekt sind. Die Zelle D10 muss in jedem Tabellenblatt die gewünschten Werte enthalten.
-
Excel-Sicherheitseinstellungen: Möglicherweise blockiert Excel die Ausführung von Makros. Ändere die Sicherheitseinstellungen unter Datei
> Optionen
> Trust Center
> Trust Center-Einstellungen
> Makroeinstellungen
.
Alternative Methoden
Wenn Du kein Makro verwenden möchtest, kannst Du auch die Funktion INDIREKT()
nutzen, um auf Werte in anderen Tabellenblättern zuzugreifen. Hier ist ein Beispiel:
=INDIREKT("'[Datei.xls]" & "Tabelle1'!$D$10")
Diese Methode kann jedoch umständlich sein, wenn Du viele Tabellenblätter hast, da Du die Formel für jedes Blatt manuell anpassen musst.
Praktische Beispiele
Angenommen, Du hast die folgenden Tabellenblätter in einer Arbeitsmappe:
- Tabelle1
- Tabelle2
- Tabelle3
Um die Werte von D10 in A2, A3 und A4 in einer neuen Tabelle zu übernehmen, kannst Du das Makro wie oben beschrieben verwenden. Alternativ kannst Du folgende INDIREKT()
-Formeln nutzen:
- A2:
=INDIREKT("'[Datei.xls]Tabelle1'!$D$10")
- A3:
=INDIREKT("'[Datei.xls]Tabelle2'!$D$10")
- A4:
=INDIREKT("'[Datei.xls]Tabelle3'!$D$10")
Tipps für Profis
-
Makros anpassen: Du kannst das Makro so anpassen, dass es auch andere Zellwerte abruft oder mehrere Zellen gleichzeitig verarbeitet.
-
Fehlerbehandlung einfügen: Füge einen Fehlerbehandlungsmechanismus in Dein Makro ein, um sicherzustellen, dass es nicht abstürzt, wenn eine Tabelle keine Daten enthält.
-
Dokumentation: Halte Deine Makros gut dokumentiert, damit Du oder andere Benutzer sie leicht verstehen und anpassen können.
FAQ: Häufige Fragen
1. Kann ich die Autovervollständigung Excel auch für andere Zellen verwenden?
Ja, Du kannst die Zellreferenz im Makro oder in der INDIREKT()
-Formel anpassen, um Werte aus anderen Zellen abzurufen.
2. Was mache ich, wenn ich eine Fehlermeldung erhalte?
Überprüfe die Zellreferenzen und stelle sicher, dass die Quellarbeitsmappe geöffnet ist und die Tabellenblätter vorhanden sind. Achte auch auf die Sicherheitseinstellungen für Makros in Excel.