Daten aus geschlossener Mappe auslesen #Excel/VBA

Fußballdaten importieren

Um Fußball Vorhersagen und Fußballstatistiken auszuwerten, werden je nach Verein, Liga und Land die Daten mit Excel in verschiedenen Arbeitsmappen erstellt und ausgewertet. Daraufhin werden oft gewünschte Berechnungen in einer Arbeitsmappe zusammengefasst.

Hier zwei Makros, wie du diese Datensätze aus einer geschlossenen Arbeitsmappe kopierst und in gewünschtes Tabellenblatt einfügst.

Der erste VBA Code liest eine Zelle aus einer geschlossenen Arbeitsmappe aus und fügt den Wert an gewünschter Stelle in die ausgehende Mappe ein.

Sub Zelle_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String

'** Angaben zur auszulesenden Zelle
pfad = "F:\Excel\Beispiele"
datei = "geschlossene Mappe2.xls"
blatt = "Tabelle1"
bezug = "A2"

'** Eintragen in Zelle
ActiveCell.Value = GetValue(pfad, datei, blatt, bezug)

End Sub

Mit folgenden Makro wird ein Bereich einer geschlossenen Arbeitsmappe ausgelesen und an gewünschter Stelle eingefügt.

Sub Bereich_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object

'** Angaben zur auszulesenden Zelle
pfad = "F:\Excel\Beispiele"
datei = "geschlossene Mappe2.xls"
blatt = "Tabelle1"
Set bereich = Range("A1:B10")

'** Bereich auslesen
For Each zelle In bereich
  
  '** Zellen umwandeln
  zelle = zelle.Address(False, False)
  
  '** Eintragen in Bereich
  ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
Next zelle

End Sub

Damit die Aktionen auch gelingen, muss noch folgende Funktion in ein Modul eingefügt werden.

Private Function GetValue(pfad, datei, blatt, zelle)
'** Daten aus geschlossener Arbeitsmappe auslesen

'*** Dimensionierung der Variablen
Dim arg As String

'Sicherstellen, dass das datei vorhanden ist
If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If

'** Das Argument erstellen
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)

'** Auslesen über Excel4Macro
GetValue = ExecuteExcel4Macro(arg)

End Function