verschiedene csv in Text

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: verschiedene csv in Text
von: dieter
Geschrieben am: 24.04.2015 12:32:44

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

Bild

Betrifft: AW: verschiedene csv in Text
von: Daniel
Geschrieben am: 24.04.2015 12:38:37
Hi
probier mal:

With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & sPath, destination:=....

Gruß Daniel

Bild

Betrifft: AW: verschiedene csv in Text
von: dieter
Geschrieben am: 25.04.2015 14:11:03
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

Bild

Betrifft: AW: verschiedene csv in Text
von: Daniel
Geschrieben am: 25.04.2015 20:22:57
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

Bild

Betrifft: AW: verschiedene csv in Text
von: dieter
Geschrieben am: 26.04.2015 10:56:03
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

Bild

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

Bild

Betrifft: AW: verschiedene csv in Text
von: dieter
Geschrieben am: 30.04.2015 17:29:33
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

Bild

Betrifft: AW: verschiedene csv in Text
von: Rudi Maintaire
Geschrieben am: 24.04.2015 12:56:45
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

Bild

Betrifft: AW: verschiedene csv in Text
von: dieter
Geschrieben am: 25.04.2015 14:02:00
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

Bild

Betrifft: AW: verschiedene csv in Text
von: Rudi Maintaire
Geschrieben am: 29.04.2015 12:30:54
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "verschiedene csv in Text"