csv import mit vba

21/03/2010 - 19:57 von Thom | Report spam
Hallo Liebe NG

Ich hab da mal ne Frage. Ich habe ne CSV Datei, dort sind die zu
importierenden Felder mit ; getrennt. Nun kann es sein, dass ein Datenwert
zwischen den ; ein , enthàlt.

Beispiel

Name;Datum;Heinz, Kasper;Strasse;;;;;

mit folgendem Script importiere ich die CSV Datei in ein anderes Excel File.
Das funktioniert soweit problemlos. Solange nirgends ein Komma in einem
Datenfeld ist. So wie bei "Heinz, Kasper". Dort stoppt das Scripft und ich
werde ich gefragt ob ich den Datensatz überscheiben soll. Muss also manuell
intervenieren.

Hat jemand einen Tipp. Ich hoffe ich hab mich einigermassen verstàndlich
ausgedrückt...

Danke und Gruss Thom

Script :

Sub imp_resdaten_n()
' löschen der Daten im Arbeitsblatt Cockpit_news

Dim TargetFilname As String
TargetFilename = ActiveWorkbook.Name

Sheets("Cockpit_news").Select
Range("A2:O2000").Select
Selection.ClearContents
Range("A1").Select
Sheets("Menu").Select

' Importiert die Daten aus resdaten_n_JJJJMMTT.csv
Sheets("Cockpit_news").Select
Range("a2").Select
Workbooks.OpenText ActiveWorkbook.Path & "/resdaten_n_*.csv"
Range("A1:o2000").Select
Selection.Copy

Dim Filname As String
Filename = ActiveWorkbook.Name

Windows(TargetFilename).Activate
Range("A2").Select
ActiveSheet.Paste
Range("a2").Select

If Range("a2") <> "" Then

Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited,
_
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False,
Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo
_
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5,
1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1),
Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1)), TrailingMinusNumbers:=True

Columns("L:L").Select
Selection.NumberFormat = "0000"
Range("A2").Select

Else
End If

Sheets("Menu").Select
Range("b1").Select
Selection.Copy
ActiveCell.PasteSpecial

Windows(Filename).Activate
ActiveWindow.Close

Windows(TargetFilename).Activate
Sheets("Menu").Select

End Sub
 

Lesen sie die antworten

#1 Hubert Scheidgen
21/03/2010 - 23:53 | Warnen spam
Thom schrieb
Ich hab da mal ne Frage. Ich habe ne CSV Datei, dort sind die zu importierenden Felder mit ; getrennt. Nun kann es sein, dass ein
Datenwert zwischen den ; ein , enthàlt.





Hallo Thom,

ich hab mal das hier gemacht:

Workbooks.OpenText FileName:=sFile _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=FalseWenn Du hier Tab auf false und Semicolon auf true setzt,geht es dann?Müsste dann
eigentlich das Komma ignorieren.Das ganze damalige Projekt ist
hier:http://www.scheidgen.de/Excel/wuehl...01.htmdort findest Du die Codezeile im Kontext,
wenn's Dich interessiert.Aber eigentlich müsste Dir schon mit der einen Zeile hier oben geholfensein. Sagst Du Bescheid, ob's
geht?GrußHuberthttp://www.scheidgen.de/excel

Ähnliche fragen