Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Indirekt ersetzen. Geschlossene Dateien

Indirekt ersetzen. Geschlossene Dateien
06.04.2020 09:50:08
KeinPlan
Hallo,
ich habe mehrere Indirekt-Funktionen, welche auf andere Mappen zugreifen. Dies dann auch noch variabel.
In etwa so: INDIREKT("'["&R10&"]"&$B$1&"'!"&"$C$11")
Da mit Indirekt ja nur auf geöffnete Dateien zugegriffen werden kann habe ich zusätzlich noch ein VBA, welches alle Mappen (ca. 20-25) öffnet und wieder schließt.
Das funktioniert ganz gut soweit. ABER: Neuerdings sind die ganzen Dateien auf dem Server und müssen immer kurz heruntergeladen werden, weshalb es über 1 Min dauert, bis alle Dateien geöffnet waren. Das ist zu lange.
Ich bin nun auf der Suche nach irgendetaws, dass die Indirekt-Funktion ersetzt.
WICHTIG: Name der Mappe und Name des Tabellenblattes sind variabel.
Mit der Indirekt-Funktion konnte man das ganze schön ruterziehen. Das würde ich gerne ähnlich einfach beibehalten.
Kurze konkrete Situation:
Jeder Mitarbeiter hat eine eigene Mappe mit den Monaten als Arbeitsblätter (muss so bleiben!) und jetzt soll eine Zusammenfassungsmappe für die Führungskraft erstellt werden. Ebenfalls je Monat ein Tabellenblatt.
In der Zusammenfassung muss nun in eine Zelle der Wert aus einer Mappe (Mappenname steht in einer anderen Zelle, muss variabel sein) aus einem Tabellenblatt (steht auch in einer Zelle, muss variabel sein) und dann einer festen Zelle.
Ich hoffe das ist irgendwie verständlich.
Es funktioniert derzeit, aber durch das öffnen und schließen aller Mitarbeitermappen einfach viel zu langsam.
Ich hoffe jmd. kann mir helfen die Indirekt-Funktion zu ersetzen und die Mappen- und Tabellenblattnamen im Bezug variabel zu halten.
Vielen Dank!
Ach ja, bitte möglichst Idiotensicher erklären, ich bin eig. schon froh, dass ich das so hinbekommen hab, wie es jetzt ist. (Anfänger)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Indirekt ersetzen. Geschlossene Dateien
06.04.2020 12:13:01
Hajo_Zi
trage die Formel per VBA ein.

AW: Indirekt ersetzen. Geschlossene Dateien
06.04.2020 15:39:33
KeinPlan
Danke für die Antwort.
Müsste ich das dann für jede Zelle, in der die Formel (jedes mal leicht abgewandelt) steht manuel ins VBA schreiben?
Gibt's da ne Möglichkeit, ähnlich wie die "Formel runterziehen" das ganze in die anderen Zellen zu schreiben?
Danke
Anzeige
AW: Indirekt ersetzen. Geschlossene Dateien
06.04.2020 16:39:24
Hajo_Zi
Range(A1:A1033").Formula ="=Deine_Formel_in_Englisch"
bzw FormulaLocal in deiner Sprache.
Gruß Hajo
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Indirekt-Funktion in Excel durch VBA ersetzen


Schritt-für-Schritt-Anleitung

Um die Indirekt-Funktion in Excel zu ersetzen und auf geschlossene Dateien zuzugreifen, kannst du VBA verwenden. Hier eine einfache Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle im Menü Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge folgenden VBA-Code ein:

    Sub WerteAusMitarbeitermappeHolen()
       Dim ws As Worksheet
       Dim mappenName As String
       Dim tabellenBlattName As String
       Dim zelle As String
    
       ' Beispielwerte, die Du anpassen kannst
       mappenName = Range("R10").Value  ' Name der Mitarbeitermappe aus Zelle R10
       tabellenBlattName = Range("B1").Value  ' Name des Tabellenblatts aus Zelle B1
       zelle = "C11"  ' Feste Zelle, die Du abrufen möchtest
    
       ' Zugriff auf die geschlossene Datei
       Set ws = Workbooks.Open("Pfad\zu\deiner\Datei\" & mappenName).Worksheets(tabellenBlattName)
    
       ' Wert aus der Zelle holen
       Range("A1").Value = ws.Range(zelle).Value  ' Wert in Zelle A1 der aktiven Datei
    
       ' Schließe die Mitarbeitermappe
       ws.Parent.Close False
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die Werte aus den geschlossenen Mitarbeitermappen abzurufen.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Überprüfe den Pfad zur Datei. Stelle sicher, dass der Pfad korrekt ist und die Datei existiert.
  • Fehler: "Objektvariable nicht festgelegt"

    • Dieser Fehler tritt auf, wenn die Datei nicht geöffnet werden kann. Stelle sicher, dass die Datei geschlossen ist und der Name korrekt ist.
  • Lösung:

    • Achte darauf, dass die Namen der Mappen und Tabellenblätter in den Zellen korrekt und ohne Tippfehler sind.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, gibt es auch alternative Ansätze:

  • Power Query: Du kannst Power Query verwenden, um Daten aus mehreren Excel-Dateien zu importieren, ohne sie öffnen zu müssen.
  • Verknüpfte Arbeitsmappen: Stelle sicher, dass die Arbeitsmappen, die du benötigst, in einer Verknüpfung bleiben, damit du sie einfacher aktualisieren kannst.

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung der Excel Indirekt-Funktion mit VBA:

  1. Summierung von Werten aus mehreren Mappen:

    • Du kannst eine Schleife in VBA verwenden, um Werte aus verschiedenen Mitarbeitermappen zu summieren.
    Sub SummiereWerte()
       Dim i As Integer
       Dim total As Double
       total = 0
    
       For i = 1 To 25  ' Angenommen, es gibt 25 Mitarbeitermappen
           mappenName = "Mitarbeiter" & i & ".xlsx"
           total = total + Application.Workbooks.Open("Pfad\" & mappenName).Worksheets("Monat").Range("C11").Value
           Workbooks(mappenName).Close False
       Next i
    
       MsgBox "Die Gesamtsumme beträgt: " & total
    End Sub
  2. Dynamisches Abrufen von Werten:

    • Verwende die oben gezeigte Methode, um Werte auf der Grundlage von Zelleninhalten dynamisch zu ziehen.

Tipps für Profis

  • Vermeide unnötiges Öffnen von Dateien: Wenn du viele Dateien hast, versuche, nur die benötigten zu öffnen, um die Leistung zu optimieren.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in deinen VBA-Code ein, um unerwartete Fehler elegant zu handhaben.
  • Dokumentation: Kommentiere deinen VBA-Code gut, damit du später leichter nachvollziehen kannst, was du gemacht hast.

FAQ: Häufige Fragen

1. Kann ich die Indirekt-Funktion auch ohne VBA nutzen? Ja, aber die Indirekt-Funktion funktioniert nur mit geöffneten Dateien. VBA ist oft die bessere Lösung für geschlossene Dateien.

2. Wie kann ich die VBA-Funktion auf mehrere Zellen anwenden? Du kannst eine Schleife verwenden, um die Funktion auf verschiedene Zellen anzuwenden, ähnlich wie im Beispiel mit der Summierung von Werten.

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