Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

csv dateien einlesen und in Hauptfile eintragen

csv dateien einlesen und in Hauptfile eintragen
08.10.2019 11:18:05
Patrick
Hallo zusammen,
Ich habe bereits einige Versuche unternommen um mein Vorhaben in die Tat umzusetzen jedoch immer gescheitert. Ich bin nicht im Stande, ein csv File zu öffnen, vier Zellen zu kopieren und in meinem Haupt-Formular einzufügen. Deshalb wende ich mich an euch.
Ziel ist es, etwa 100 csv Files nacheinander zu öffnen und 4 Zellen in ein Hauptformular zu kopieren.
Userbild
der Code ist wie folgt:
Private Sub Einlesen_Click()
pfad = Application.ActiveWorkbook.Path        'Pfad von aktuellem Excel file speichern.
datnam = Dir(pfad & "*.csv")                  'Dateiname wird eingelesen
LeereZeile = Sheets("Historie").Cells(1, 1)   'bei A1 wird die Aktuelle Zeile ausgegeben wo  _
_
eingetragen werden soll
LeereSpalte = 1                               'Laufvariable um gewünschte Spalte für die  _
Einträge zu finden
MsgBox Dir(pfad)
MsgBox "Pfad: " & pfad
MsgBox "Dateiname: " & datnam
'Start der Schleife um die Daten ins Hauptformular einzutragen
Do While datnam  ""                                             '
wb = Workbooks.Open(pfad & datnam)          'öffnet das File
XNeu = 2                                    'Spalte der neuen Arbeitsmappe
ECLplatz = Sheets("Historie").Cells(3, LeereSpalte)
'Im Hauptformular die Stelle Finden, welche mit dem Filename übereinstimmt um dort einzutragen
Do While datnam  ECLplatz
LeereSpalte = LeereSpalte + 1
ECLplatz = Sheets("Historie").Cells(3, LeereSpalte)
Loop
i = 0                                       'Zellen (0.3 bis 1um) übertragen
'Die 4 Zellen werden vom csv File ins Hauptformular übertragen
Do Until i = 4
Sheets("Historie").Cells(LeereZeile, LeereSpalte) = wb(XNeu, 2)
XNeu = XNeu + 1
LeereSpalte = LeereSpalte - 1
i = i + 1
Loop
Loop
Close #1
End Sub

Danke für eure Hilfe
Gruss
Patrick

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

Betreff
Datum
Anwender
Anzeige
AW: Beispieldateien
08.10.2019 11:28:50
Fennek
Hallo Patrick,
lade bitte eine CSV und die XLSX mit den Spalten-Köpfen hoch.
Gibt es in der CSV nur den Header und die 4 benötigten Zeilen, oder noch andere?
mfg
AW: Beispieldateien
08.10.2019 13:13:14
Patrick
Hallo Fennek,
das ist alles, wie gesagt, es sind weitere solche Files ecl01a, ecl01b.... und ecl 02a ... usw.
und der Header ist auch alles bereits abgebildet, wiederholt sich nach rechts....
greez
AW: Beispieldateien? (owT)
08.10.2019 14:53:47
Fennek
AW: Beispieldateien? (owT)
08.10.2019 15:12:50
Patrick
ich kann weder Excel noch csv Dateien hochladen....
Aber ich bin bereits weiter vorangekommen mit meinem Problem.
Im Moment kämpfe ich damit, dass a) ich nur ein csv öffnen kann und anschliessend ein Laufzeitfehler '9' bekomme und b) die csv Datei nicht schlissen kann. evtl kannst du mir da weiter helfen?
Laufzeitfehler'9':
Index ausserhalb des gültigen Bereichs
Code:
Private Sub Einlesen_Click()
pfad = Application.ActiveWorkbook.Path        'Pfad von aktuellem Excel file speichern.
Filename = ThisWorkbook.Name
Pfado = pfad & "\"
datnam = Dir(Pfado & "*.csv")                 'Dateiname wird eingelesen
LeereZeile = Sheets("Historie").Cells(1, 1)   'bei A1 wird die Aktuelle Zeile ausgegeben wo  _
eingetragen werden soll
LeereSpalte = 2                               'Laufvariable um gewünschte Spalte für die  _
Einträge zu finden
'MsgBox "pfado: " & pfado
MsgBox "Dateiname: " & datnam
'MsgBox "hauptfile: " & Filename
'Start der Schleife um die Daten ins Hauptformular einzutragen
Do While datnam  ""
ECLplatz = Sheets("Historie").Cells(3, LeereSpalte) & ".csv"
'Open Pfado & d For Input As #1
Workbooks.Open (Pfado & datnam)             'öffnet das csv File
sheetnam = Workbooks(datnam).ActiveSheet.Name
'Im Hauptformular die Stelle Finden, welche mit dem Filename übereinstimmt um dort einzutragen
Do While datnam  ECLplatz
MsgBox ECLplatz
LeereSpalte = LeereSpalte + 4
ECLplatz = Workbooks(Filename).Sheets("Historie").Cells(3, LeereSpalte) & ".csv"
Loop
'Die 4 Zellen (0.3 bis 1um) werden vom csv File ins Hauptformular übertragen
Text = Split(Workbooks(datnam).Sheets(sheetnam).Cells(2, 1), ";")
Workbooks(Filename).Sheets("Historie").Cells(LeereZeile, LeereSpalte + 3) = Text(1)      _
'0.3um
Workbooks(Filename).Sheets("Historie").Cells(LeereZeile, LeereSpalte + 2) = Text(2)      _
'0.5um
Workbooks(Filename).Sheets("Historie").Cells(LeereZeile, LeereSpalte + 1) = Text(3)      _
'0.7um
Workbooks(Filename).Sheets("Historie").Cells(LeereZeile, LeereSpalte) = Text(4)          _
'1.0um
MsgBox "loop ende"
Loop
Close #1
End Sub

Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige