Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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
verschiedene csv in Text
24.04.2015 12:32:44
dieter
Hallo all,
Wie kann ich verschiedene .csv Dateinen in ein text Format in einzelnen Spalten legen ?
Die Abfrage der Datei geht, aber beim umsetzen Schwierigkeiten.
Habe es mit Recorder versucht, dann geht aber nur die Datei die ich über Recorder anspreche. Möchte aber verschiedene ansprechen. aber funkt nicht.
Hier mein bisheriger Code
Private Sub CommandButton2_Click()
Dim sPath$
sPath = "F:\"
ChDrive sPath
ChDir sPath
sPath = Application.GetOpenFilename("Excel-Dateien,*.cs?", 1)
If sPath = "" Then
End If
On Error Resume Next
Ab Hier Problem eine .csv zu öffnen
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;J:\ ?.csv", Destination:=Range("$A$1" _
))
.Name = " ? "
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveSheet.Range("C:C").Select
Selection.ColumnWidth = 120
ActiveSheet.Range("A11").Select
Range("2:2,5:5,8:8").Select
Selection.Delete Shift:=xlUp
Range("C6").Select
End Sub

Wäre nett wenn jemand helfen könnte u. auch den Code ? verkürzen
Vielen Dank im Voraus der Hilfe
Mfg
Dieter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: verschiedene csv in Text
24.04.2015 12:38:37
Daniel
Hi
probier mal:
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sPath, destination:=....

Gruß Daniel

AW: verschiedene csv in Text
25.04.2015 14:11:03
dieter
Hallo Daniel,
Habe dein Code auch versucht, aber ist wie bei Rudi, kann Datei auswählen, aber wird nicht in den Zellen geschrieben.
Private Sub CommandButton2_Click()
Dim sPath$
sPath = "F:\"
ChDrive sPath
ChDir sPath
sPath = Application.GetOpenFilename("Excel-Dateien,*.cs?", 1)
If sPath = "" Then
End If
On Error Resume Next
Neu
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sPath, Destination:=("$A$1"))
Alt
'    With ActiveSheet.QueryTables.Add(Connection:= _
'        "TEXT;J:\?.csv", Destination:=Range("$A$1" _
'        ))
'        .Name = "?"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveSheet.Range("C:C").Select
Selection.ColumnWidth = 120
ActiveSheet.Range("A11").Select
Range("2:2,5:5,8:8").Select
Selection.Delete Shift:=xlUp
Range("C6").Select
End Sub
Hast du noch eine Lösung ?
Mfg.
dieter

Anzeige
AW: verschiedene csv in Text
25.04.2015 20:22:57
Daniel
No, ich weiss jetzt auch nicht, warum dass nicht funktioniert.
Aber nimm mal das On Error Resume Next raus.
Sollte noch ein Fehler drin sein, bekommst du dann wenigstens eine ordentliche Fehlermeldung die dir helfen kann, die Fehlerursache zu finden.
Gruß Daniel

AW: verschiedene csv in Text
26.04.2015 10:56:03
dieter
Hallo Daniel,
Habe On erro mal rausgenommen, der Fehler ist dann Laufzeit Fehler 13, Typen unverträglich.
Das ist das neue Von Dir !!
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sPath, Destination:=("$A$1"))
Hast Du noch eine Idee ?
Mfg.
dieter

AW: verschiedene csv in Text
26.04.2015 19:42:21
Daniel
Gib bei Destination eine richtige Zella an:
Destination:=Range("A1")
Gruß Daniel

Anzeige
AW: verschiedene csv in Text
30.04.2015 17:29:33
dieter
Hallo Daniel und Rudi,
Habe es hinbekommen mit eurer Hilfe, danke dafür.
Hier der gesamte Code wie es bei mir läuft.
Private Sub CommandButton1_Click()  ' Datei öffnen
UserForm2.Hide
Dim varName As Variant
varName = Application.GetOpenFilename("CSV-Dateien,*.csv,Alle Dateien,*.*")
If varName = False Then Exit Sub
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & varName, Destination:=Range("$A$1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
'        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
_
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Nochmals Danke der Hilfe
Mfg.
Dieter

Anzeige
AW: verschiedene csv in Text
24.04.2015 12:56:45
Rudi
Hallo,
eine Möglichkeit:
Sub csv2txt()
Dim sTmp As String, sCsv As String, sFile
sFile = Application.GetOpenFilename("(*.csv), *.csv")
If sFile  False Then
Open sFile For Input As #1
Do While Not EOF(1)
Line Input #1, sTmp
sCsv = sCsv & vbCrLf & sTmp
Loop
Close #1
sCsv = Mid(sCsv, 2)
sCsv = Replace(sCsv, ";", vbTab)
Open Replace(sFile, ".csv", ".txt") For Output As #1
Print #1, sCsv
Close #1
End If
End Sub
Gruß
Rudi

AW: verschiedene csv in Text
25.04.2015 14:02:00
dieter
Hallo Rudi,
Habe dein Code versucht, öffnet zwar die Datei, aber es wird nichts in den Zellen Geschrieben.
Private Sub CommandButton3_Click()
Dim sTmp As String, sCsv As String, sFile
sFile = Application.GetOpenFilename("(*.csv), *.csv")
If sFile  False Then
Open sFile For Input As #1
Do While Not EOF(1)
Line Input #1, sTmp
sCsv = sCsv & vbCrLf & sTmp
Loop
Close #1
sCsv = Mid(sCsv, 2)
sCsv = Replace(sCsv, ";", vbTab)
Open Replace(sFile, ".csv", ".txt") For Output As #1
Print #1, sCsv
Close #1
End If
End Sub

Hast du noch anderes Lösung ?
Danke im Voraus
Mfg
Dieter

Anzeige
AW: verschiedene csv in Text
29.04.2015 12:30:54
Rudi
Hallo,
aber es wird nichts in den Zellen Geschrieben.
das war auch nicht gefordert.
Im gleichen Ordner wie die csv wird eine txt angelegt. Gleicher Name wie csv, nur txt als Endung
Gruß
Rudi

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige