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