Microsoft Excel

Herbers Excel/VBA-Archiv

eingelesene Daten aus txt Datei

Betrifft: eingelesene Daten aus txt Datei von: Frank
Geschrieben am: 22.09.2014 10:50:20

Hallo an Alle,

ich habe hier im Forum einen brauchbaren Code zum Importieren von txt Dateien gefunden. Ich importiere lediglich die ersten beiden Spalten. Das Problem dabei ist, dass die Werte nicht richtig importiert werden. Das heißt alle Zahlen die kleiner sind als 1, werden richtig mit einem Komma importiert. Alle Zahlen die größer als 1 sind werden im "Tausenderformat" importiert. Im Lokalfenster wird die Zahl jedoch richtig angezeigt.

Anbei der Code sowie ein Bild.

Sub MachsMal()

Dim strPfad As String
Dim lngFN As Long
Dim strText As String
Dim vntArrayZeilen As Variant
Dim lngZeileNr As Long
Dim vntArrayWerte As Variant
Dim lngSpalte As Long
Dim wksZ As Worksheet
Dim Dateiname As Variant

Set wksZ = ActiveWorkbook.Worksheets("Tabelle1")

strPfad = "c:\test.txt"
lngFN = FreeFile
Open strPfad For Binary As lngFN
 strText = Space(LOF(lngFN))
 Get lngFN, 1, strText
Close lngFN

strText = Replace(strText, vbTab, " ", 1, -1, 1)

vntArrayZeilen = Split(strText, vbCrLf, -1, 1)
  
For lngZeileNr = 1 To UBound(vntArrayZeilen) - 2
  
 vntArrayWerte = Split(vntArrayZeilen(lngZeileNr), ";", -1, 1)
 For lngSpalte = 0 To 1
   wksZ.Cells(lngZeileNr + 1, lngSpalte + 1).Value = vntArrayWerte(lngSpalte)

 Next
Next


End Sub

https://www.herber.de/bbs/user/92745.jpg

Ich würde mich freuen, wenn mir jemand sagen könnte wie ich dieses Problem umgehen kann.

Vielen Dank und viele Grüße
Frank

  

Betrifft: AW: eingelesene Daten aus txt Datei von: Rudi Maintaire
Geschrieben am: 22.09.2014 11:17:50

Hallo,
versuchs mal mit
wksZ.Cells(lngZeileNr + 1, lngSpalte + 1).Value = vntArrayWerte(lngSpalte)*1

Gruß
Rudi


  

Betrifft: AW: eingelesene Daten aus txt Datei von: Frank
Geschrieben am: 22.09.2014 11:29:43

Hallo Rudi,

damit hast du mir wieder einmal geholfen. Vielen Dank.
Kannst du mir auch sagen warum die Werte nicht korrekt übergeben werden, obwohl sie in VBA richtig angezeigt werden?

Vielen Dank und viele Grüße
Frank


  

Betrifft: AW: eingelesene Daten aus txt Datei von: Rudi Maintaire
Geschrieben am: 22.09.2014 11:38:17

Hallo,
ohne *1 schreibst du Text in Excel. Der wird dann oft falsch interpretiert. Wenn du eine Zahl schreibst, passiert das nicht.
Ähnlich Probleme gibt es bei Datumswerten. Da wird oft der Monat und der Tag vertauscht, wenn das ein gültiges Datum ergibt (z.B. wird der 12.9. zum 9.12., nicht aber der 13.9. zum 9.13.). Hier gehe ich immer hin und wandele das Datum in VBA in einen Long-Wert um. CLng(CDate(Variable)) oder CDate(Variable)*1.
Leztlich hängt das damit zusammen, dass VBA immer in englisch ist.

Gruß
Rudi


  

Betrifft: Rudi, vielen Dank für die ausführliche Antwort von: Frank
Geschrieben am: 22.09.2014 14:11:00

.