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: ExecuteExcel4Macro erzeugt fehler

ExecuteExcel4Macro erzeugt fehler
19.05.2005 17:51:41
henning
hallo
nach einem tip von reinhard habe ich versucht mit folgendem code die zellen mehrerer worbooks zu addieren.
[c10] = 0
For n = 1 To Range("A65536").End(xlUp).Row 'letzte gefüllte Zelle in A
[c10] = [c10] + ExecuteExcel4Macro("d:\Eigene Dateien\Luxscan\Cordes\Auswertungen\", Cells(n, 1), "Tabelle1", "A1")
Next n

als fehlermeldung gibt excel :fehler beim kompilieren. falsche anzahl an argumenten oder ungültige zuweisung zu einer eigenschaft.
ich wollte eigentlich den code verwenden um mit 2 for to schleifen alle zellen eines blattes zu addieren. daher kann ich das originalbeispiel von der excel-cd nicht verwenden. weiß jemand rat?
was würde eigentlich passieren wenn leere zellen oder zellen mit text addiert werden würden?
ich bin natürlich auch für andere lösungen offen...
vielen dank schonmal
henning
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Du musst die Z1S1-Adressierung nutzen
19.05.2005 18:14:16
Boris
Hi Henning,
...bzw. in VBA: R und C statt Z und S.
Also für A1 (der Dateiname steht in Cells(n, 1) - ohne Endung .xls) - ungetestet:

Application.ExecuteExcel4Macro("'D:\Eigene Dateien\Luxscan\Cordes\Auswertungen\[" & Cells(n, 1) & ".xls]Tabelle1'!R1C1")

Grüße Boris
Anzeige
AW: Du musst die Z1S1-Adressierung nutzen
20.05.2005 10:07:54
henning
vielen dank
jetzt scheint es zu gehen...
For n = 1 To Range("A65536").End(xlUp).Row 'letzte gefüllte Zelle in A
[c6] = [c6] + Application.ExecuteExcel4Macro("'D:\Eigene Dateien\Luxscan\Cordes\Auswertungen\Linie 1\[" & Cells(n, 1) & ".xls]Auswertung Detail'!R7C2")
Next n
so funktioniert es jetzt wenn die zelle leer ist oder eine zahl beinhaltet. aber wenn text drinsteht heißt es: "typen unverträglich". kann ich das über on error resume next abfangen oder muß ich vorher ne abfrage über den inhalt der zelle starten?
wie müßte das dann aussehen?
vielen dank nochmal
henning
Anzeige
AW: Du musst die Z1S1-Adressierung nutzen
20.05.2005 10:21:56
Boris
Hi Henning,
lies den Wert aus der anderen Datei mit der ExcecuteExcel4Macro-Methode aus und weise ihn einer Variablen des Typs Variant zu.
Anschließend fragst du diese Variable mit If IsNumeric(Variable) Then... ab, bevor du sie zu C6 addierst.
Grüße Boris
;
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehebung bei ExecuteExcel4Macro in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Vorbereitung:

    • Stelle sicher, dass der Pfad zu der Excel-Datei korrekt ist und dass die Datei existiert. Beispielsweise könnte der Pfad so aussehen: D:\Eigene Dateien\Luxscan\Cordes\Auswertungen\[Dateiname].xls.
  2. VBA-Code einsetzen:

    • Verwende den folgenden Code, um die Zellen mehrerer Workbooks zu addieren:
      
      Dim n As Long
      Dim Wert As Variant

    [c10] = 0 For n = 1 To Range("A65536").End(xlUp).Row ' letzte gefüllte Zelle in A Wert = Application.ExecuteExcel4Macro("'D:\Eigene Dateien\Luxscan\Cordes\Auswertungen[" & Cells(n, 1) & ".xls]Tabelle1'!R1C1") If IsNumeric(Wert) Then [c10] = [c10] + Wert End If Next n

  3. Typenüberprüfung:

    • Nutze die IsNumeric-Funktion, um sicherzustellen, dass nur numerische Werte addiert werden. Dies verhindert den Fehler "Typen unverträglich", der auftritt, wenn Textwerte in die Berechnung einfließen.

Häufige Fehler und Lösungen

  • Fehlermeldung: Fehler beim Kompilieren:

    • Ursache: Falsche Anzahl an Argumenten oder ungültige Zuweisung.
    • Lösung: Überprüfe, ob der Pfad zur Datei korrekt ist und die Syntax der ExecuteExcel4Macro-Methode stimmt.
  • Typen unverträglich:

    • Wenn Textwerte in den Zellen sind, kann dies zu einem Fehler führen.
    • Lösung: Implementiere eine Typenüberprüfung, wie oben beschrieben.
  • Leere Zellen:

    • Leere Zellen können ebenfalls zu unerwarteten Ergebnissen führen.
    • Lösung: Überprüfe den Inhalt der Zelle vor der Addition.

Alternative Methoden

  • Verwendung von Application.Workbooks.Open:

    • Anstatt ExecuteExcel4Macro zu nutzen, kannst du die Datei öffnen und direkt auf die Zellen zugreifen:
      Dim wb As Workbook
      Set wb = Workbooks.Open("D:\Eigene Dateien\Luxscan\Cordes\Auswertungen\" & Cells(n, 1) & ".xls")
      [c10] = [c10] + wb.Sheets("Tabelle1").Cells(1, 1).Value
      wb.Close False
  • Power Query:

    • Wenn Du Excel 2016 oder neuer hast, kannst Du Power Query verwenden, um Daten aus mehreren Quellen zu aggregieren, was eine robustere Lösung darstellt.

Praktische Beispiele

  • Beispiel zur Addition von Werten:

    Dim gesamt As Double
    gesamt = 0
    
    For n = 1 To Range("A65536").End(xlUp).Row
      Wert = Application.ExecuteExcel4Macro("'D:\Eigene Dateien\Luxscan\Cordes\Auswertungen\[" & Cells(n, 1) & ".xls]Tabelle1'!R1C1")
      If IsNumeric(Wert) Then
          gesamt = gesamt + Wert
      End If
    Next n
    
    MsgBox "Die Summe beträgt: " & gesamt

Tipps für Profis

  • Fehlersuche optimieren:

    • Nutze On Error Resume Next vorsichtig, um Fehler zu ignorieren. Es ist besser, Fehler explizit zu behandeln.
  • Code kommentieren:

    • Füge Kommentare zu deinem Code hinzu, um die Logik zu klären, besonders wenn du komplexe Berechnungen durchführst.
  • Verwendung von Variablen:

    • Verwende Variablen des Typs Variant für Werte, die möglicherweise numerisch oder textuell sein könnten.

FAQ: Häufige Fragen

1. Was ist die ExecuteExcel4Macro-Methode? Die ExecuteExcel4Macro-Methode ermöglicht es, Excel4-Makros auszuführen, um auf Zellen in anderen Arbeitsmappen zuzugreifen und deren Werte zu verwenden.

2. Wie gehe ich mit leeren Zellen um? Du solltest vor der Addition den Inhalt der Zelle überprüfen, um sicherzustellen, dass sie nicht leer ist. Verwende dazu If Not IsEmpty(Cells(n, 1)) Then.

3. Kann ich ExecuteExcel4Macro in jeder Excel-Version verwenden? Ja, ExecuteExcel4Macro ist in den meisten Excel-Versionen verfügbar, jedoch ist es ratsam, die neuesten Funktionen und Methoden zu verwenden, wenn Du neuere Versionen von Excel nutzt.

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