Thema Datum  Von Nutzer Rating
Antwort
07.05.2018 13:42:10 Nikolai
*****
NotSolved
Blau Trennzeichen(Delimiter) identifizieren in csv datei mit vba
07.05.2018 19:06:07 SJ
NotSolved

Ansicht des Beitrags:
Von:
SJ
Datum:
07.05.2018 19:06:07
Views:
666
Rating: Antwort:
  Ja
Thema:
Trennzeichen(Delimiter) identifizieren in csv datei mit vba

Hallo,

versuche es einmal hiermit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Option Explicit
 
'//Verweise
'//Microsoft Scripting Runtime
 
'//Einstellungen
Private Const C_PATH As String = "C:\Users\User\Desktop\test"
 
'//main Subroutine
Public Sub main()
    Dim fso As FileSystemObject
    Dim fold As Folder
    Dim f As File
    Dim stream As TextStream
     
    On Error GoTo cleanUp
    Set fso = New FileSystemObject
    Set fold = fso.GetFolder(C_PATH)
     
    For Each f In fold.Files
        'Debug.Print f.Type
        If f.Type = "Microsoft Excel-CSV-Datei" Then
            Set stream = fso.OpenTextFile(f.Path, ForReading, False)
            If Not stream.AtEndOfStream Then
                Debug.Print "Delimiter in Datei '" & f.Path & "': " & "[" & getDelimiter(stream.ReadLine) & "]"
            End If
            stream.Close
            Set stream = Nothing
        End If
    Next f
    On Error GoTo 0
     
cleanUp:
    '//Fehlerbehandlung
    If Err.Number Then
        Dim sPromt As String
        sPromt = "Es ist leider ein Fehler aufgetreten." & vbCrLf & _
            "Fehlernummer: " & Err.Number & vbCrLf & _
            "Fehlerbeschreibung: " & Err.Description
        MsgBox sPromt, vbCritical, "Fehler " & Err.Number
    End If
     
    '//Referenzen freigeben
    If Not stream Is Nothing Then Set stream = Nothing
    If Not f Is Nothing Then Set f = Nothing
    If Not fold Is Nothing Then Set fold = Nothing
    If Not fso Is Nothing Then Set fso = Nothing
End Sub
 
Private Function getDelimiter(ByRef line As String) As String
    Dim sDelimiter(3) As String
    Dim v As Variant, w As Variant
     
    sDelimiter(0) = ";"
    sDelimiter(1) = vbTab
    sDelimiter(2) = ","
     
    On Error Resume Next
    For Each v In sDelimiter
        w = Split(line, v)
        If IsArray(w) And UBound(w) > 0 Then
            getDelimiter = v
            Exit Function
        End If
        Set w = Nothing
    Next v
    On Error GoTo 0
     
    getDelimiter = vbNullString
End Function

Ausgabe im Direktfenster:

1
2
3
Delimiter in Datei 'C:\Users\Sebastian\Desktop\test\daten_comma.csv': [,]
Delimiter in Datei 'C:\Users\Sebastian\Desktop\test\daten_semicolon.csv': [;]
Delimiter in Datei 'C:\Users\Sebastian\Desktop\test\daten_tab.csv': [   ]

Viele Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.05.2018 13:42:10 Nikolai
*****
NotSolved
Blau Trennzeichen(Delimiter) identifizieren in csv datei mit vba
07.05.2018 19:06:07 SJ
NotSolved