Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
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

ASCII Wert durch Komma trennen

ASCII Wert durch Komma trennen
02.07.2015 09:38:51
Basti
Hallo Herbers-Excel Forum,
Ich benötige dringend Eure Hilfe bei diesem Problem.

Akuell importiere ich in eine Excel-Mappe Daten aus einer Datei im ASCII-Format,um diese zu  _
verarbeiten.
Dabei handelt es sich um Text mit sieben Zeichen pro Zelle, der eigentlich eine negative/ _
positive Zahl mit sechs Nachkommastellen ist.
Bsp. 3.449.707 = 3,449707 oder -0.613566 = -0,613566
Excel interpretiert den Punkt lediglich bei Zahlen zwischen - 1 und + 1 als Trennzeichen. Wert > _
//
Könnt Ihr mit sagen, wie ich diesen Ablauf ggf. mit VBA automatisieren kann?
Gruß
Basti

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 10:33:41
Daniel
Hi
importiere die Datei über die Importfunktion (Daten - Externe Daten - Aus Text)
dort kannst du im Assistenten nicht nur das Trennzeichen vorgeben, sondern auch das verwendte Dezimalzeichen (diese Einstellung ist entwas versteckt im Schritt 3 des Assistenten unter "Weitere").
wenn du die Datei direkt öffnest ist es so, dass wenn du das in Excel von Hand machst, die deutschen Zahlenformate und Trennzeichen verwendet werden.
Lässt du die gleiche Aktion jedoch von einem Makro ausführen, werden die englischen verwendet.
Gruß Daniel

AW: ASCII Wert durch Komma trennen
02.07.2015 10:34:48
Daniel
Hi
importiere die Datei über die Importfunktion (Daten - Externe Daten - Aus Text)
dort kannst du im Assistenten nicht nur das Trennzeichen vorgeben, sondern auch das verwendte Dezimalzeichen (diese Einstellung ist entwas versteckt im Schritt 3 des Assistenten unter "Weitere").
wenn du die Datei direkt öffnest ist es so, dass wenn du das in Excel von Hand machst, die deutschen Zahlenformate und Trennzeichen verwendet werden.
Lässt du die gleiche Aktion jedoch von einem Makro ausführen, werden die englischen verwendet.
Gruß Daniel

Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 10:34:50
Daniel
Hi
importiere die Datei über die Importfunktion (Daten - Externe Daten - Aus Text)
dort kannst du im Assistenten nicht nur das Trennzeichen vorgeben, sondern auch das verwendte Dezimalzeichen (diese Einstellung ist entwas versteckt im Schritt 3 des Assistenten unter "Weitere").
wenn du die Datei direkt öffnest ist es so, dass wenn du das in Excel von Hand machst, die deutschen Zahlenformate und Trennzeichen verwendet werden.
Lässt du die gleiche Aktion jedoch von einem Makro ausführen, werden die englischen verwendet.
Gruß Daniel

AW: ASCII Wert durch Komma trennen
02.07.2015 10:35:00
Daniel
Hi
importiere die Datei über die Importfunktion (Daten - Externe Daten - Aus Text)
dort kannst du im Assistenten nicht nur das Trennzeichen vorgeben, sondern auch das verwendte Dezimalzeichen (diese Einstellung ist entwas versteckt im Schritt 3 des Assistenten unter "Weitere").
wenn du die Datei direkt öffnest ist es so, dass wenn du das in Excel von Hand machst, die deutschen Zahlenformate und Trennzeichen verwendet werden.
Lässt du die gleiche Aktion jedoch von einem Makro ausführen, werden die englischen verwendet.
Gruß Daniel

Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 10:35:22
Daniel
Hi
importiere die Datei über die Importfunktion (Daten - Externe Daten - Aus Text)
dort kannst du im Assistenten nicht nur das Trennzeichen vorgeben, sondern auch das verwendte Dezimalzeichen (diese Einstellung ist entwas versteckt im Schritt 3 des Assistenten unter "Weitere").
wenn du die Datei direkt öffnest ist es so, dass wenn du das in Excel von Hand machst, die deutschen Zahlenformate und Trennzeichen verwendet werden.
Lässt du die gleiche Aktion jedoch von einem Makro ausführen, werden die englischen verwendet.
Gruß Daniel

AW: ASCII Wert durch Komma trennen
02.07.2015 10:45:31
UweD
Hallo
Wenn ich so eine Datei importiere, dann steht das so in den Zellen.
Userbild
Wobei die Werte mit 2 Punkten als Zahl interpretiert werden. Und nur bei der entsprechenden Formatierung angezeigt werden.
Wenn nur ein . enthalten ist, wird als Text interpretiert.
Hiermit werden diese restlichen Punkte durch Komma ersetzt. (kannst du aber auch von Hand ausführen)
Sub KommaPunkt()
Dim Spalte As Integer
Spalte = 1 'Deine Werte stehen in Spalte A
With ActiveSheet.Columns(Spalte)
.SpecialCells(xlCellTypeConstants, 2).Replace What:=".", _
Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.TextToColumns DataType:=xlFixedWidth, _
FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
End With
End Sub
Gruß Uwe

Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 10:52:24
Daniel
Hi
du musst schon beim Öffnen der Datei ansetzen.
wie öffnest du die Datei?
wie liegen die Daten in der ausgangsdatei vor?
bedenke auch beim Ersetzen:
wenn du in einem als Text gespeicherte Zahl einen Dezimal-Punkt hast und dann diese Zahl wandeln willst indem du den Dezimalpunkt durch ein Komma ersetzt, dann musst du, wenn du das per VBA machst, den Punkt durch einen Punkt ersetzen.
Kling wiedersinnig, ist aber so.
Das Problem ist, dass Excel und VBA englisch miteinader reden.
Ein Ersetzen ist wie eine Neueingabe von Hand, bei der Excel erneut prüft, ob die Eingabe eine Zahl, ein Datum, eine Formel oder ein Text ist.
Wenn jedoch diese Eingabe von VBA kommt, dann erwartet Excel die Zahlen im englischen Zahlenformat, dh mit dem Punkt als Dezimalzeichen.
Kommt die Eingabe jedoch von dir, dann erwartet Excel die Zahl im eingestellen Läderformat, dh in Deutschland mit dem Komma als Dezimalzeichen.
Das ist ein bisschen verwirrend, daher sollte man schon beim öffnen der Datei dafür sorgen, dass die Daten richtig interpretiert werden.
Gruß Daniel

Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 11:17:22
UweD
Hallo
Diese Datei wird geöffnet. (Aufbau so, wie beschrieben)

3.449.707
-0.613566
1.444.324
3.449.707
0.613566
1.444.324

https://www.herber.de/bbs/user/98595.txt
Sub KommaPunkt()
Dim Datei As String
Datei = "C:\Temp\Test.txt"
Workbooks.OpenText FileName:=Datei, Origin:=xlMSDOS, StartRow _
:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
With ActiveSheet.Columns(1)
.SpecialCells(xlCellTypeConstants, 2).Replace What:=".", _
Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.TextToColumns DataType:=xlFixedWidth, _
FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
.NumberFormat = "General"
End With
End Sub

Bei mit klappt das ...
Gruß UweD

Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 12:04:59
Daniel
HI
sieht unsinnig aus.
der Punkt wird ja gleichzeitig als Dezimal- und Tausendertrennzeichen verwendet.
wenn das vorliegt, sollte man erstmal beim Erstellen der Ausgangsdatei ansetzen und hier für ein korrektes Ausgabeformat sorgen.
Gruß Daniel

AW: ASCII Wert durch Komma trennen
02.07.2015 13:07:31
UweD
Hallo Daniel
>>> sieht unsinnig aus.
.SpecialCells(xlCellTypeConstants, 2)
1) Dadurch werden nur die Zellen angesprochen, die Text sind.
2) Die Punkte bei Zahlen sind nur Optisch und in der Zelle nicht vorhanden
>>> sollte man erstmal beim Erstellen der Ausgangsdatei ansetzen
und was ist, wenn das Maschinen Messwerte sind, die genau so automatisch abgelegt werden?
Klappt auf jeden Fall bestens.
Gruß UweD

Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 13:49:48
Daniel
Hi
du hast ne Text-Datei hochgeladen, und da gibts keine "nur optischen Punkte", die gibts nur in Excel.
Wenn in der Textdatei Punkte zu sehen sind, sind auch Punkte da.
Wenn die Maschinensoftware die Daten so ausspuckt, hat die Maschninensoftare nen Fehler und sollte korrigiert werden.
Gruß Daniel

AW: ASCII Wert durch Komma trennen
02.07.2015 13:59:05
UweD
Hi
- also ich bin nicht der Fragensteller.
- Ich habe so gut ich kann auf die Problemstellung geantwortet
- und laut Rückmeldung hat es ja auch geklappt.
- Ja, in der Textdatei sind nur "reale Punkte"
- Aber viele Sachen macht Excel von sich auch schon automatisch, ( z.B. 1000er Punkte erkennen und in der Zelle weglassen), das muss also im Makro NICHT mehr berücksichtigt werden.
- Ja, du hast Recht: Solche gemischten Messwerte sollte eine Anlage nie ablegen.
Gruß UweD

Anzeige
AW: ASCII Wert durch Komma trennen
02.07.2015 11:23:30
Basti
Hat funktioniert!
Danke und Gruß
Basti

210 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige