Thema Datum  Von Nutzer Rating
Antwort
25.12.2015 17:29:48 kaba
NotSolved
25.12.2015 21:54:30 Gast84843
NotSolved
26.12.2015 00:21:18 Gast24916
NotSolved
26.12.2015 11:04:08 Gast31427
NotSolved
26.12.2015 19:47:04 Gast44228
NotSolved
26.12.2015 21:25:23 Gast33581
NotSolved
27.12.2015 17:07:30 Gast15252
NotSolved
27.12.2015 18:33:40 Gast11408
NotSolved
27.12.2015 21:46:20 Gast79845
NotSolved
27.12.2015 23:11:01 Gast51998
NotSolved
28.12.2015 00:18:41 Gast63692
NotSolved
28.12.2015 00:23:42 Gast45800
NotSolved
28.12.2015 12:13:26 Gast20098
NotSolved
28.12.2015 13:17:10 Gast28188
NotSolved
28.12.2015 16:27:18 Gast74702
NotSolved
28.12.2015 16:39:19 Gast79553
NotSolved
28.12.2015 20:34:51 Gast47519
NotSolved
29.12.2015 01:30:11 Gast34909
NotSolved
29.12.2015 08:37:15 Gast24437
NotSolved
29.12.2015 09:51:40 Gast52305
NotSolved
29.12.2015 13:43:19 Gast74900
NotSolved
29.12.2015 17:10:59 kaba
NotSolved
Rot 3 Probleme mit meinem Text-Import script
29.12.2015 22:05:52 Gast93041
NotSolved
29.12.2015 23:00:04 Gast65849
NotSolved
30.12.2015 10:21:02 Gast36151
*****
Solved
30.12.2015 20:23:27 kaba
NotSolved
30.12.2015 22:54:25 Gast78976
NotSolved
31.12.2015 11:51:11 Gast23361
NotSolved
31.12.2015 12:55:44 Gast2945
NotSolved
31.12.2015 13:09:25 Gast71405
*****
Solved
03.01.2016 12:42:43 kaba
Solved
31.12.2015 11:40:43 Gast8396
NotSolved
31.12.2015 12:57:09 Gast64794
NotSolved

Ansicht des Beitrags:
Von:
Gast93041
Datum:
29.12.2015 22:05:52
Views:
740
Rating: Antwort:
  Ja
Thema:
3 Probleme mit meinem Text-Import script

Hallo Kaba!

Schlage mich hier jetzt schon ne Weile rum. Problem ist, dass mit die Ausgangsdatei fehlt. Bei meinen Dateien im ANSI passt alles. Und meine Editoren geben kein MS-DOS an. Habe deshalb mal nen neuen Versuch anbei. Der geht nach dem ersetzen eigentlich nur die Spalte durch und sucht die "komischen Zeichen" und ersetzt die. ISt jetzt nicht die schönste Programmierung aber ein Versuch. :-) Wenn es möglich ist, kann du mal so eine ANSI und MSDOS txt Datei (mit Umlauten) hochladen. Dann könnte man direkt mit den Daten probieren. Wie immer den Pfad neu eintragen.  Gruß

 


Dim dateien()
Option Explicit
  
Sub DateienLesen()
    Call EventsOff
    Dim DateiName As String
    Dim quelle As String
    Dim i As Long
    Dim j As Long
    Dim zeile As String
    Dim inhalt
    Dim ende
    Dim nr
    Dim utf As Boolean
    Dim prüfen As Boolean
    Dim erstezeile As Boolean
    
    ReDim dateien(0)
    dateien(0) = 0
      
    quelle = "       " 'Pfad eintragen
    Call txtsuchen(quelle)
 
    If dateien(0) = 0 Then
    MsgBox "Keine .txt Dateien gefunden!"
    Else
    'Daten auslesen
         
        For i = 1 To dateien(0)
        DateiName = dateien(i)
        ende = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
        ende = ende + 2
        
        nr = FreeFile()
        utf = False
        prüfen = False
        erstezeile = False
        
        Open DateiName For Input As #nr
        Do While Not EOF(nr)
         
            Line Input #nr, zeile
             
            inhalt = Split(zeile, Chr(9))
            
            If prüfen = False Then
                If Len(inhalt(0)) > 2 Then
                    If Asc(Left(inhalt(0), 1)) = 239 And Asc(Mid(inhalt(0), 2, 1)) = 187 And Asc(Mid(inhalt(0), 3, 1)) = 191 Then utf = True
                End If
                prüfen = True
            End If
                
            For j = 0 To UBound(inhalt)
                               
                If utf = True Then
                    If erstezeile = False Then
                        If j = 0 Then inhalt(j) = Mid(inhalt(j), 4, Len(inhalt(j)))
                        If IsNumeric(inhalt(j)) Then inhalt(j) = Replace(inhalt(j), ",", ".")
                        ActiveSheet.Cells(ende, 3 + j) = FromUTF8String(inhalt(j))
                    Else
                        If IsNumeric(inhalt(j)) Then inhalt(j) = Replace(inhalt(j), ",", ".")
                        ActiveSheet.Cells(ende, 3 + j) = FromUTF8String(inhalt(j))
                    End If
                Else
                    If IsNumeric(inhalt(j)) Then inhalt(j) = Replace(inhalt(j), ",", ".")
                    ActiveSheet.Cells(ende, 3 + j) = inhalt(j)
                End If
            Next j
            erstezeile = True
            ende = ende + 1
        Loop
         
        Close #nr
  
        Next i
    End If
    Call tausch
    
    ActiveSheet.Range("C:D").Columns.AutoFit
    ActiveSheet.Range("C:D").NumberFormat = "0.000000"
    Call EventsOn
End Sub
   
Public Sub EventsOff()
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
End Sub
   
Public Sub EventsOn()
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub
 
Function txtsuchen(quelle As String)
Dim suche
Dim ordner()
Dim i As Long
  
ReDim ordner(0)
ordner(0) = 0
ChDrive (Left(quelle, 3))
ChDir (quelle)
 
'Ordner durchschauen
suche = Dir(quelle & "\*.*", vbDirectory)
  
Do Until suche = ""
    'Normale Dateien rausfiltern
    If (GetAttr(quelle & "\" & suche) = 16) Then
        'die hier ankommen, sind Ordner, extra speichern
        ordner(0) = ordner(0) + 1
        ReDim Preserve ordner(ordner(0))
        ordner(ordner(0)) = suche
    Else
        If Right(suche, 4) = ".txt" Then
            dateien(0) = dateien(0) + 1
            ReDim Preserve dateien(dateien(0))
            dateien(dateien(0)) = quelle & "\" & suche
        End If
    End If
          
    suche = Dir()
Loop
'jetzt durch die Ordner gehen
For i = 1 To UBound(ordner)
    If Dir(ordner(i), vbNormal) = "" And Left(ordner(i), 1) <> "." Then
        Call txtsuchen(quelle & "\" & ordner(i))
        ChDir (quelle)
    End If
Next
End Function

Function FromUTF8String(ByVal s As String) As String
   Dim i As Integer, b(2) As Byte
   
   i = 1
   s = s & Chr(0) & Chr(0)
   Do While i <= Len(s) - 2
      b(0) = Asc(Mid(s, i, 1))
      b(1) = Asc(Mid(s, i + 1, 1))
      b(2) = Asc(Mid(s, i + 2, 1))
      If (b(0) And &HE0) = &HE0 Then
         FromUTF8String = FromUTF8String & ChrW((b(0) And &HF) * CLng(&H1000) + (b(1) And &H3F) * CLng(&H40) + (b(2) And &H3F))
         i = i + 3
      ElseIf (b(0) And &HC0) = &HC0 Then
         FromUTF8String = FromUTF8String & ChrW((b(0) And &H1F) * &H40 + (b(1) And &H3F))
         i = i + 2
      Else
         FromUTF8String = FromUTF8String & Chr(b(0))
         i = i + 1
      End If
   Loop
End Function

Function tausch()
Dim i As Long
For i = 1 To ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row

ActiveSheet.Cells(i, 5) = Replace(ActiveSheet.Cells(i, 5), Chr(195) & Chr(132), "Ä")
ActiveSheet.Cells(i, 5) = Replace(ActiveSheet.Cells(i, 5), Chr(195) & Chr(164), "ä")
ActiveSheet.Cells(i, 5) = Replace(ActiveSheet.Cells(i, 5), Chr(195) & Chr(150), "Ö")
ActiveSheet.Cells(i, 5) = Replace(ActiveSheet.Cells(i, 5), Chr(195) & Chr(182), "ö")
ActiveSheet.Cells(i, 5) = Replace(ActiveSheet.Cells(i, 5), Chr(195) & Chr(156), "Ü")
ActiveSheet.Cells(i, 5) = Replace(ActiveSheet.Cells(i, 5), Chr(195) & Chr(188), "ü")
ActiveSheet.Cells(i, 5) = Replace(ActiveSheet.Cells(i, 5), Chr(195) & Chr(159), "ü")
Next i

End Function

 


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
25.12.2015 17:29:48 kaba
NotSolved
25.12.2015 21:54:30 Gast84843
NotSolved
26.12.2015 00:21:18 Gast24916
NotSolved
26.12.2015 11:04:08 Gast31427
NotSolved
26.12.2015 19:47:04 Gast44228
NotSolved
26.12.2015 21:25:23 Gast33581
NotSolved
27.12.2015 17:07:30 Gast15252
NotSolved
27.12.2015 18:33:40 Gast11408
NotSolved
27.12.2015 21:46:20 Gast79845
NotSolved
27.12.2015 23:11:01 Gast51998
NotSolved
28.12.2015 00:18:41 Gast63692
NotSolved
28.12.2015 00:23:42 Gast45800
NotSolved
28.12.2015 12:13:26 Gast20098
NotSolved
28.12.2015 13:17:10 Gast28188
NotSolved
28.12.2015 16:27:18 Gast74702
NotSolved
28.12.2015 16:39:19 Gast79553
NotSolved
28.12.2015 20:34:51 Gast47519
NotSolved
29.12.2015 01:30:11 Gast34909
NotSolved
29.12.2015 08:37:15 Gast24437
NotSolved
29.12.2015 09:51:40 Gast52305
NotSolved
29.12.2015 13:43:19 Gast74900
NotSolved
29.12.2015 17:10:59 kaba
NotSolved
Rot 3 Probleme mit meinem Text-Import script
29.12.2015 22:05:52 Gast93041
NotSolved
29.12.2015 23:00:04 Gast65849
NotSolved
30.12.2015 10:21:02 Gast36151
*****
Solved
30.12.2015 20:23:27 kaba
NotSolved
30.12.2015 22:54:25 Gast78976
NotSolved
31.12.2015 11:51:11 Gast23361
NotSolved
31.12.2015 12:55:44 Gast2945
NotSolved
31.12.2015 13:09:25 Gast71405
*****
Solved
03.01.2016 12:42:43 kaba
Solved
31.12.2015 11:40:43 Gast8396
NotSolved
31.12.2015 12:57:09 Gast64794
NotSolved