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

Forumthread: per VBA zweite Excel Tabelle öffnen, auslesen, sch

per VBA zweite Excel Tabelle öffnen, auslesen, sch
Volker
Hallo,
ich habe eine Frage und hoffe auf Eure hilfe:
Ich habe eine Excel-Tabelle (A.xls), in der ich eine VBA-Programmierung eingefügt habe. Ich suche nun einen Programmcode, für diese Tabelle der es mir ermöglicht eine ZWEITE(!) Excel-Tabelle (B.xls; Pfad und Name bekannt) zu öffnen, die darin enthaltenen Werte abzugreifen (zum Beispiel die Zelle A1) und die Datei dann wieder unverändert und ungespeichert zu schließen.
Fällt dazu jemandem etwas einfaches ein? Für einen kurzen Code wäre ich sehr dankbar.
Grüße
VT
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: per VBA zweite Excel Tabelle öffnen, auslesen, sch
03.11.2009 07:01:10
Hajo_Zi
Hallo Volker,
Option Explicit
Sub Volker()
Workbooks.Open "C:\Eigene Dateien\A.xls"
'Werte auslesen und übertraggen
Workbooks("A.xls").Close False
End Sub

AW: per VBA zweite Excel Tabelle öffnen, auslesen, sch
03.11.2009 09:03:27
VT
Hallo,
vielen Dank für die schnelle Antwort. Zwei Punkte/Nachfragen noch:
1) Du meintest sicher: "B.xls", nicht "A.xls", oder?! Mir geht es ja darum, dass ich "A.xls" offen habe, ein dort enthaltenens Makro starte, welches dann "B.xls" öffnet und Werte einliest.
2) Wie kann ich die Werte (z.B. aus Zelle A1) aus "B.xls" zum Auslesen adressieren? Wenn ich einen Wert von "A.xls" auslesen will, schreibe ich z.B. einfach Variable=range ("A1"). Was muss ich ergänzen, damit ich die andere (B.xls) Excel-Tabelle auslesen kann?
Gruß und danke für Deine Hilfe!!!
VT
Anzeige
AW: per VBA zweite Excel Tabelle öffnen, auslesen, sch
03.11.2009 09:22:00
André
Moin VT
nachdem Du B.xls geöffnet hast, ist das automatisch die aktive Tabelle. Du könntest also eine Zelle in B.xls direkt mit RANGE("A1") ansprechen. Sicherer ist es allerdings, die Zelle komplett zu adressieren:
WORKBOOKS("B.xls").WORKSHEETS("Tabelle1").RANGE("A1")
So brauchst Du nicht berücksichtigen, welche Tabelle und welches Arbeitsblatt gerade aktiv sind.
Gruß, André
Anzeige
AW: per VBA zweite Excel Tabelle öffnen, auslesen, sch
03.11.2009 10:17:46
VT
Hallo André,
vielen dank für Deine Hilfe. Das war genau das, was ich gesucht hatte. Auch nochmal ein Dank an alle anderen, die geholfen haben mein Problem zu lösen!
Gruß
VT
;

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

VBA zum Öffnen und Auslesen einer anderen Excel-Datei


Schritt-für-Schritt-Anleitung

Um mit VBA eine andere Excel-Datei zu öffnen und Daten auszulesen, kannst Du den folgenden Code verwenden. Stelle sicher, dass Du den Pfad zur Datei anpasst.

Option Explicit

Sub DatenAusAndererDateiAuslesen()
    Dim wb As Workbook
    Dim wert As Variant

    ' Andere Excel-Datei öffnen
    Set wb = Workbooks.Open("C:\Pfad\zu\Deiner\B.xls")

    ' Wert aus Zelle A1 auslesen
    wert = wb.Worksheets("Tabelle1").Range("A1").Value

    ' Wert in der aktuellen Datei verwenden
    MsgBox "Der Wert aus B.xls in A1 ist: " & wert

    ' Datei schließen, ohne zu speichern
    wb.Close False
End Sub

Mit diesem VBA-Code kannst Du die Datei "B.xls" öffnen, den Wert aus Zelle A1 auslesen und die Datei dann wieder schließen, ohne Änderungen zu speichern.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Überprüfe den angegebenen Pfad zur Datei. Stelle sicher, dass die Datei tatsächlich existiert und der Pfad korrekt ist.
  • Fehler: "Objekt nicht gefunden"

    • Achte darauf, dass der Name des Arbeitsblatts (z.B. "Tabelle1") korrekt ist. Wenn das Blatt anders benannt ist, musst Du den Namen im Code anpassen.
  • Fehler beim Auslesen von Werten

    • Stelle sicher, dass Du die richtige Syntax verwendest, um auf die Zelle zuzugreifen. Nutze wb.Worksheets("Tabelle1").Range("A1").Value, um den Wert zu erhalten.

Alternative Methoden

Wenn Du eine Excel-Datei per VBA öffnen möchtest, gibt es verschiedene Möglichkeiten:

  1. Verwendung von Workbook.Open mit einem Dialog: Du kannst den Benutzer auffordern, die Datei auszuwählen.

    Dim dateiPfad As String
    dateiPfad = Application.GetOpenFilename()
    If dateiPfad <> "False" Then
       Set wb = Workbooks.Open(dateiPfad)
    End If
  2. Verwendung von VBA zur Automatisierung: Du kannst auch VBA-Module verwenden, um mehrere Dateien gleichzeitig zu öffnen und Daten auszulesen.


Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für das Auslesen von Daten aus einer anderen Excel-Datei:

  • Einlesen von mehreren Zellen:

    Dim wertA1 As Variant
    Dim wertB1 As Variant
    
    wertA1 = wb.Worksheets("Tabelle1").Range("A1").Value
    wertB1 = wb.Worksheets("Tabelle1").Range("B1").Value
    MsgBox "Wert A1: " & wertA1 & ", Wert B1: " & wertB1
  • Daten in die aktuelle Datei übertragen:

    ThisWorkbook.Worksheets("Tabelle1").Range("C1").Value = wertA1

Tipps für Profis

  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler beim Programmieren zu vermeiden.
  • Verwende Fehlerbehandlungsroutinen, um dein Makro robuster zu machen. Zum Beispiel:
    
    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub

Fehlerbehandlung: MsgBox "Ein Fehler ist aufgetreten: " & Err.Description


- Teste Deinen Code regelmäßig, um sicherzustellen, dass alles wie gewünscht funktioniert.

---

#### FAQ: Häufige Fragen {#id6}

**1. Wie kann ich mehrere Excel-Dateien gleichzeitig öffnen?**
Du kannst mehrere `Workbooks.Open`-Befehle nacheinander ausführen, um mehrere Dateien zu öffnen.

**2. Was passiert, wenn ich einen Fehler im Makro habe?**
Wenn ein Fehler auftritt, wird das Makro anhalten. Es ist ratsam, eine Fehlerbehandlungsroutine einzufügen, um den Fehler abzufangen und eine hilfreiche Nachricht anzuzeigen.

**3. Wie kann ich sicherstellen, dass ich die Dateien nicht versehentlich speichere?**
Beim Schließen der Datei solltest Du `wb.Close False` verwenden, damit keine Änderungen gespeichert werden.

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