Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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
Inhaltsverzeichnis

Problem beim Einlesen von Textdateien

Problem beim Einlesen von Textdateien
28.03.2023 18:43:08
Kasimir

Hallo an alle!
Ich habe ein Problem beim Importieren von Exceldateien. Mit dem nachfolgenden Makro importiere ich Textdateien.

Option Explicit

Sub Import_Textdatei()
Dim strExportfile       As String
Dim strTMP              As String
Dim strWert             As String
Dim strZeile            As String
    
Dim wksDatenblatt       As Worksheet
    
Dim wkbAddIn            As Workbook
    
Dim intDateinummer      As Integer
Dim intColumn           As Integer

Dim lngRow              As Long

On Error GoTo ERRORHANDLER
    
strExportfile = Application.GetOpenFilename("Microsoft Excel-Dateien (*.txt), *.txt")
  
Set wkbAddIn = ThisWorkbook
Set wksDatenblatt = wkbAddIn.Sheets("Hilfstabelle Rechnungsdaten")
    
With wksDatenblatt
    .Columns(1).ClearContents
    
    intDateinummer = FreeFile
    
    lngRow = 1
    Open strExportfile For Input As #1
    Do While Not EOF(1)
        Line Input #intDateinummer, strZeile
        intColumn = 1
        
        strWert = strZeile
        
         .Cells(lngRow, 1) = strWert

        lngRow = lngRow + 1
    Loop
    Close #1
End With

Exit Sub

ERRORHANDLER:
Set wksDatenblatt = Nothing
MsgBox "Fehler"
End Sub



Das funktioniert auch soweit. Allerdings werden diverse Zeichen anders als in der Textdatei dargestellt, eingefügt. Anstelle von z.B. dem Eurozeichen (€) erhalte ich die Zeichen "€". Hat jemand eventuell eine Idee, wie ich die Textdatei einlesen kann, ohne dass an den Texten Änderungen vorgenommen werden? Wenn ich die Textdatei über die Excelfunktion "Daten -> Daten abrufen -> Aus Datei -> Aus Text/CSV" importiere, werden z.B. die Eurozeichen nicht verändert. Allerdings habe ich dafür kein Makro, was es erlaubt wechselnde Textdateien einzulesen.

Ich hoffe, das jemand von Euch einen Vorschlag für mich hat. Sollte meine Erklärung Fragen aufwerfen, weil ich etwas umständlich beschrieben habe, so gebt mir bescheid und ich werde versuchen das anders zu beschreiben.

Danke Euch schon mal,
Kasimir

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem beim Einlesen von Textdateien
28.03.2023 20:35:43
volti
Hallo Kasimir,

falls Du Dein Makro weiterhin einsetzen möchtest, kannst Du ja eine Umsetzliste bemühen......
So mache ich das auch oft.
Option Explicit

Sub Import_Textdatei()
  Dim strExportfile       As String
  Dim strTMP              As String
  Dim strWert             As String
  Dim strZeile            As String
  Dim wksDatenblatt       As Worksheet
  Dim wkbAddIn            As Workbook
  Dim intDateinummer      As Integer
  Dim intColumn           As Integer
  Dim lngRow              As Long

  On Error GoTo ERRORHANDLER
    
  strExportfile = Application.GetOpenFilename("Microsoft Excel-Dateien (*.txt), *.txt")
  
  Set wkbAddIn = ThisWorkbook
  Set wksDatenblatt = wkbAddIn.Sheets("Hilfstabelle Rechnungsdaten")
    
  With wksDatenblatt
      .Columns(1).ClearContents
    
      intDateinummer = FreeFile
     
      lngRow = 1
      Open strExportfile For Input As #1
      Do While Not EOF(1)
          Line Input #intDateinummer, strZeile
          intColumn = 1
        
          strWert = GetText(strZeile)
        
           .Cells(lngRow, 1) = strWert
  
          lngRow = lngRow + 1
      Loop
      Close #1
  End With

  Exit Sub

ERRORHANDLER:
  Set wksDatenblatt = Nothing
  MsgBox "Fehler"
End Sub

Function GetText(sWas As String, Optional iBeginn As Integer = 1) As String
' Umsetzung der Umlaute
  GetText = Trim$(Replace(Mid$(sWas, iBeginn), "ä", "ä"))
  GetText = Replace(GetText, "ö", "ö")
  GetText = Replace(GetText, "ü", "ü")
  GetText = Replace(GetText, "Ä", "Ä")
  GetText = Replace(GetText, "Ö", "Ö")
  GetText = Replace(GetText, "ß", "ß")
  GetText = Replace(GetText, "ÿ", "ÿ")
  GetText = Replace(GetText, "€", "€")
End Function
Gruß
Karl-Heinz


Anzeige
AW: Problem beim Einlesen von Textdateien
28.03.2023 20:40:46
volti
Ups, ein Komma zu viel....
Function GetText(sWas As String, Optional iBeginn As Integer = 1) As String
' Umsetzung der Umlaute
  GetText = Replace(Mid$(sWas, iBeginn), "ä", "ä")
  GetText = Replace(GetText, "ö", "ö")
  GetText = Replace(GetText, "ü", "ü")
  GetText = Replace(GetText, "Ä", "Ä")
  GetText = Replace(GetText, "Ö", "Ö")
  GetText = Replace(GetText, "ß", "ß")
  GetText = Replace(GetText, "ÿ", "ÿ")
  GetText = Replace(GetText, "â¬", "€")
End Function
Gruß KH


AW: Problem beim Einlesen von Textdateien
29.03.2023 04:43:58
Kasimir
Moin Karl-Heinz!
Danke Dir für Deine Antwort. Das Ändern über die Funktion hat das erhoffte Ergebnis gebracht. Danke Dir dafür.
MfG, Kasimir

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige