Thema Datum  Von Nutzer Rating
Antwort
Rot Daten aus anderen Excel-Dateien per Schleife auslesen
12.10.2018 16:34:42 Joni
NotSolved
12.10.2018 16:39:35 Joni
NotSolved
12.10.2018 16:41:26 Gast50740
NotSolved
12.10.2018 16:42:40 Gast59028
NotSolved
12.10.2018 16:43:30 Gast99883
NotSolved
13.10.2018 19:44:04 Gast85908
NotSolved

Ansicht des Beitrags:
Von:
Joni
Datum:
12.10.2018 16:34:42
Views:
984
Rating: Antwort:
  Ja
Thema:
Daten aus anderen Excel-Dateien per Schleife auslesen

Hallo zusammen,

ich habe für meine Masterarbeit eine erste Messreihe mit fast 1000 Messungen laufen. Mehrere tausend Messungen werden noch folgen.

  • Für jede Messung bekomme ich eine eigene .xlsm-Datei, die u.A. die Berechnung einiger Kennwerte enthält.
  • Die einzelnen .xlsm-Dateien liegen alle in einem Windows-Ordner.
  • Die Kennwerte stehen in den einzelnen Dateien immer in der selben Zelle im selben Sheet.

Mit einem Makro lasse ich mir eine Liste aller Dateinamen ausgeben.

Ich möchte jetzt gerne ein VBA-Makro schreiben zum Zusammentragen der Ergebnisse. Das Makro soll in einer Schleife:

  • Die Anzahl der Dateien erkennen (funktioniert)
  • Die einzelnen .xlsm-Dateien öffnen, wenn möglich im Hintergrund
  • Die Kennwerte aus den jeweiligen Zellen auslesen
  • Alles in der Sammlungstabelle eintragen

Ich scheitere aber am variablen Dateinamen (und eventuell auch an der Schleife...):

Sub ErgebnisseAuslesen()
'Anzahl der auszuwertenden Dateien:
Dim NumDataFiles As Integer
NumDataFiles = Sheets("Dateinamen").Cells(Rows.Count, 1).End(xlUp).Row
'Gibt die richtige Zeilenzahl zurück

'Variablentypen deklarieren:
Dim F1 As Double 'einer meiner Kennwerte
Dim Filename As String
Dim i As Integer 'als Laufvariable über die Zeilen der Dateinamen und Exportzeilen

'Schleife über alle Dateien:
For i = 1 To NumDataFiles

'Dateinamen einlesen:
Filename = Worksheets("Dateinamen").Cells(i, 1).Value
'Dateiname steht im Sheet "Dateinamen" in der Zelle i,1

'Daten einlesen:
F1 = Workbooks("Filename").Worksheets("RawData").Range("F1").Value

'Daten in neue Tabelle übertragen:
Worksheets("Ergebnisse").Cells(i, 1).Value = Filename
Worksheets("Ergebnisse").Cells(i, 2).Value = F1

Next i

'noch ein bisschen Formatierungs-Gedöns

End Sub

Das Makro bleibt immer beim Einlesen hängen. Error ist "Laufzeitfehler '9' Index außerhalb des gültigen Bereichs".

 

Könnt ihr mir bitte helfen das richtig hinzubekommen?

Vielen Dank.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Daten aus anderen Excel-Dateien per Schleife auslesen
12.10.2018 16:34:42 Joni
NotSolved
12.10.2018 16:39:35 Joni
NotSolved
12.10.2018 16:41:26 Gast50740
NotSolved
12.10.2018 16:42:40 Gast59028
NotSolved
12.10.2018 16:43:30 Gast99883
NotSolved
13.10.2018 19:44:04 Gast85908
NotSolved