Anzeige
Archiv - Navigation
568to572
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
568to572
568to572
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Öffnen von csv-Dateien per VBA

Öffnen von csv-Dateien per VBA
16.02.2005 13:06:14
csv-Dateien
Hallo!
Scheinbar ist es nicht so einfach, mit VBA csv-Dateien zu öffnen wie in Excel.
Weiter unten sind einige Zeilen. Hier werden alle csv-Dateien in einem Ordner durch Klicken auf eine beliebige geöffnet und danach in eine Tabelle einer einzigen Arbeitsmappe verschoben.
In der Do While....Loop-Schleife passieren dann noch andere Dinge.
Die csv-Dateien werden leider nur in eine Spalte verfrachtet (das ist das eigentliche Problem!!!!), weswegen ich dann noch 'Text in Spalten' anwenden muss. Merkwürdig.
Und ein weiteres Problem ist: In den importierten csv-Dateien sind Dezimalzahlen, die durch Kommata getrennt sind (also die Dezimalstellen). Jetzt kommt es natürlich ganz auf die Einstellungen drauf an, wie die Zahlen ankommen. Habe ich Punkt als Dezimaltrennung angegeben, dann tauchen nach dem Import Lücken auf, was nicht sein darf.
Gibt es für beides Lösungen?
DateiErweiterung = "*.csv"
Datei = Application.GetOpenFilename("csv-Dateien (" & DateiErweiterung & "), " & DateiErweiterung, Title:="Verzeichnisauswahl - erste Datei auswählen")
If Datei = False Then Exit Sub
DateiPfad = CurDir & "\"
If DateiPfad = "" Then Exit Sub
Else
ChDir DateiPfad
Set NeueMappe = Workbooks.Add
DateiName = Dir(DateiPfad & DateiErweiterung)
Do While Len(DateiName) &gt 0
Workbooks.Open Filename:=DateiPfad & DateiName
Sheets(1).Move After:=NeueMappe.Sheets(NeueMappe.Sheets.Count)
DateiName = Dir()
Loop
End If

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Öffnen von csv-Dateien per VBA
16.02.2005 13:42:27
csv-Dateien
Hallo Pit,
ich hatte mal ein ähnliches Problem. Bei mir waren die Daten durch Kommas getrennt und Dezimaltrennzeichen war ebenfalls ein Komma !!!!!
Mir ist nichts besseres eingefallen, als das Komma beim öffnen als Spaltentrenner zu nehmen und anschließend die Werte wieder zusammen zu bauen.
Bsp: Wert = 26,876
in A1: 26, in B1: 876 usw
A1= A1 + ("0," & B1)
A2= A2 + ("0," & B2)
usw.
ist eine Spalte abgearbeitet, werden die nun leeren Spalten gelöscht.
Das passt zwar nicht 100%, aber da sich sonst keiner gemeldet hat....
i = 1
j = 2
While Cells(i, j) ""
'Cells(i, j).Select
While Cells(i, j) ""
Cells(i, j) = Cells(i, j) + ("0," & Left(Cells(i, j + 1), 1))
i = i + 1
Wend
i = 1
j = j + 1
For k = 1 To 3
Columns(j).Delete
Next
Wend
Gruß
Volker
Anzeige
AW: Öffnen von csv-Dateien per VBA
16.02.2005 13:58:24
csv-Dateien
Hallo Pit
Wie ich Dich verstanden habe, öffnest Du die CSV aus dem Explorer!?
Da war mal folgende Regel ...
Im Explorer unter Extras - Ordneroptionen - Dateitypen - Eintrag csv. - erweitert - Eintrag open - bearbeiten.Hier bei DDE- Nachricht den Eintrag [open("%1")] ändern in [öffnen("%1")].
Gruss Werner
AW: Öffnen von csv-Dateien per VBA
16.02.2005 15:34:07
csv-Dateien
Werner, das funktioniert leider auch nicht!
Aber du hast recht, ich versuche die Dateien mit dem Explorer zu öffnen (application.getopenfilename).
Ich versuche es jetzt mal mit einem reinen Datenimport. Aber da wird mir das Trennzeichenproblem nicht die Schwierigkeiten machen, da ich ja Semikolon-Trennung der Spalten habe und die Dezimalstelle wird per Komma getrennt.
Trtzdem Dank an Werner und an Volker!
Anzeige
AW: Öffnen von csv-Dateien per VBA
16.02.2005 15:59:59
csv-Dateien
Hallo Pit
Wenn Du die CSV-Datei vom Excel aus aufrufst, sollte Dein Problem (alles in einer Spalte) behoben sein.
Gruss Werner
AW: Öffnen von csv-Dateien per VBA
16.02.2005 16:43:10
csv-Dateien
Ja, wie gesagt, ich brauche die VBA-Lösung!!!
Das scheint unterschiedlich gehandhabt zu werden.
Ein einfaches Öffnen aus dem Explorer aus oder von Excel aus funktioniert (auch ohne deine Änderung). Aber ich benötige einen Aufruf mittels VBA. Das geht nach wie vor nicht.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige