Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus geschlossener Excel auslesen

Daten aus geschlossener Excel auslesen
06.10.2020 10:13:33
Jan
Hallo zusammen,
ich trickse grade an einer Lösung, aus einer geschlossenen Exceldatei auf einem Netzlaufwerk Daten auszulesen. Bin im Netz auf die VBA Lösung über VBA mithilfe von Excel4Macro gestossen...bekomme aber einen "Laufzeitehler '1004': Anwendungs- oder objektdefinierter Fehler"
Idee ist, die Zellen aus dem geschlossenen Dok auszulesen und in eine Tabelle in der arbeitenden Liste zu schreiben.
Der Code sieht folgendermassen aus:
Sub Bereich_auslesen()
Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object
pfad = "Zelle mit Pfadangabe"
datei = "Zelle mit Dateinamenangabe"
blatt = "Tabelle 1"
Set bereich = Range("A1:Z9999")
For Each zelle In bereich
zelle = zelle.Address(False, False)
ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
Next zelle
End Sub
Private Function GetValue(pfad, datei, blatt, zelle)
Dim arg As String
If Right(pfad, 1)  "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, ,  _
xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function

Sieht dort jemand auf Anhieb etwas, was da nicht hingehört oder funktioniert? (rätsel)
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus geschlossener Excel auslesen
06.10.2020 10:54:50
volti
Hallo Jan,
lokal läuft der code bei mir (Server kann ich leider nicht prüfen).
Allerdings musste ich "Tabelle 1" in "Tabelle1" ändern, sonst kommt "Fehler 2023".
Heißt Deine Tabelle wirklich "Tabelle 1"?
viele Grüße
Karl-Heinz
AW: Daten aus geschlossener Excel auslesen
06.10.2020 10:58:34
Nepumuk
Hallo Jan,
259.974 Zellen einzeln auslesen bedeutet du öffnest 259.974 einen DDE-Kanal um an die Daten zu kommen. Das dürfte, wenn es funktioniert mehrere Monate dauern. Denn die Methode ist alles andere wie schnell. Öffne die Datei schreibgeschützt und kopieren den gewünschten Bereich auf einmal, das dürfte mit öffnen und schließen der Mappe nur ein paar Sekunden dauern.
Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten aus geschlossener Excel auslesen


Schritt-für-Schritt-Anleitung

Um Daten aus einer geschlossenen Excel-Datei auszulesen, kannst Du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu:

    • Rechtsklicke im Projektfenster und wähle Einfügen -> Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub Bereich_auslesen()
       Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object
       pfad = "<i>Zelle mit Pfadangabe</i>"
       datei = "<i>Zelle mit Dateinamenangabe</i>"
       blatt = "Tabelle1" ' Achte auf die genaue Bezeichnung
       Set bereich = Range("A1:Z9999")
    
       For Each zelle In bereich
           ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
       Next zelle
    End Sub
    
    Private Function GetValue(pfad, datei, blatt, zelle)
       Dim arg As String
       If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
       If Dir(pfad & datei) = "" Then
           GetValue = "Datei nicht gefunden"
           Exit Function
       End If
       arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)
       GetValue = ExecuteExcel4Macro(arg)
    End Function
  4. Ändere die Pfadangabe und den Dateinamen in den Code, um auf Deine spezifische Datei zu verweisen.

  5. Führe das Makro aus, um die Daten aus der geschlossenen Datei auszulesen.


Häufige Fehler und Lösungen

  • Fehler 1004 (Anwendungs- oder objektdefinierter Fehler): Prüfe, ob der Pfad und die Datei korrekt angegeben sind. Achte darauf, dass die Datei tatsächlich existiert.
  • Fehler 2023: Dieser tritt auf, wenn der Tabellenname nicht korrekt ist. Stelle sicher, dass der Tabellenname exakt mit dem in der Datei übereinstimmt, z.B. Tabelle1 anstelle von Tabelle 1.

Alternative Methoden

Wenn Du die Daten aus einer geschlossenen Excel-Datei auslesen möchtest, aber VBA nicht nutzen möchtest, gibt es auch andere Ansätze:

  • Power Query: Mit Power Query kannst Du Daten aus verschiedenen Quellen importieren, einschließlich geschlossener Excel-Dateien. Du kannst die Datei einfach im Power Query-Editor auswählen und die gewünschten Daten importieren.
  • CSV-Export: Eine andere Möglichkeit ist, die Excel-Datei als CSV zu speichern und die benötigten Daten anschließend mit Excel zu importieren.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die oben genannten Methoden nutzen kannst:

  1. VBA Beispiel: Wenn Du einen Bereich von Zellen aus einer geschlossenen Datei auslesen möchtest, kannst Du den VBA-Code oben anpassen, um spezifische Bereiche zu definieren.

  2. Power Query Beispiel:

    • Gehe zu Daten -> Daten abrufen -> Aus Datei -> Aus Arbeitsmappe.
    • Wähle die geschlossene Excel-Datei aus und lade die benötigten Tabellen.

Tipps für Profis

  • Batch-Verarbeitung: Wenn Du große Datenmengen aus einer geschlossenen Excel-Datei auslesen musst, versuche, die Daten in einem Schritt zu laden, anstatt jede Zelle einzeln.
  • Fehlerbehandlung: Implementiere in Deinem VBA-Code eine Fehlerbehandlung, um Probleme wie das Fehlen der Datei eleganter zu handhaben.
  • Leistungsoptimierung: Schalte Bildschirmaktualisierungen und Berechnungen vorübergehend aus, um die Ausführungsgeschwindigkeit Deines VBA-Codes zu erhöhen:

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ' Dein Code hier
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich Excel-Daten aus einer geschlossenen Datei ohne VBA auslesen?
Du kannst Power Query verwenden, um Daten aus einer geschlossenen Excel-Datei zu importieren, ohne VBA zu verwenden.

2. Was tun, wenn der Pfad zur Datei nicht gefunden wird?
Überprüfe, ob der Pfad und der Dateiname korrekt sind, und stelle sicher, dass die Datei auf dem angegebenen Netzlaufwerk oder Speicherort vorhanden ist.

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