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

Mehr als 15 Stellen - Text in Spalten

Mehr als 15 Stellen - Text in Spalten
13.08.2019 19:02:53
Tim
Hallo zusammen,
also lange Geschichte kurz, per VBA werden Daten aus verschiedenen Quellen aufbereitet. Hierbei ist ein Datensatz bestehend aus SSCC, z.D. NVE.
NVE Nummern sind idR größer 15 Stellen, soweit so gut. Die NVE stehen in einer Zelle (pro Auftrag) sauber getrennt per ",'" das "," als Trenner, das ' als Qualifier.
Nun soll per Text in Spalten die NVE sauber auf die Zellen verteilt werden. Läuft auch!
Zur Verbesserung der usability soll nun möglichst das Apostroph entfernt werden.
Gebe ich Text in Spalten das Apo. als Qualifier mit, wandelt Excel, beim Aufteilen der NVE auf die einzelnen Zellen, die Nummer in eine 15-Stellige um. Sprich die letzten Ziffern werden genullt. Dabei ist es völlig egal, ob ich vorher im Makro Code die Ziel-Spalten auf Text formatiere.
Auch ist egal, wenn ich im Code für TextinColumns die Array Info 1,2 (Text) mitgebe. Excel kürzt die Zahl. Ist für mich auch soweit logisch, da der Compiler zuerst den Qualifier löscht. Anschließend schaut er sich den Trenner an und wird dann die einzelnen Werte auf die Zellen aufteilen. Während genau dieses Vorganges (exportieren der Einzelwerte) wird der Compiler die Zahl als INT behandeln und entsprechen kürzen. Hund und Schwanz... Da das geschieht, bevor er die INT dann in die einzelnen Zellen einfügt, ist das Format der Array-Ziel-Zellen herzlich egal.
Der vorgesehene Weg wäre diese Zahlen vorher als Double oder String zu definieren.
Dafür sieht TexttoColoumns aber keine Standardmöglichkeit vor. Zumindest kenne ich keine. Der Bug besteht meiner Meinung nach darin, dass die zu Nutzenden Variablen in der Funktion TexttoColoumns nicht per se als String behandelt werden. Anscheinend erkennt der Compiler Zahlenwerte und wandelt diese entsprechend als INT bevor er sie verwendet.
Das mag der Geschwindigkeit und auch in vielen Fällen durchaus hilfreich sein. In meinem speziellen Fall führt es aber leider zum gegenteiligen Ergebnis.
Gibts irgendwelche Ideen oder bekannte workarounds?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehr als 15 Stellen - Text in Spalten
13.08.2019 19:36:13
onur
Wenn du schon hier mit Abkürzungen um dich wirfst, solltest du für die Nicht-Logistiker Diese erläutern oder ganz auf sie erzichten. ;)
AW: Mehr als 15 Stellen - Text in Spalten
13.08.2019 21:00:04
Tim
Hi onur,
das ist sicherlich ein berechtigter Einwand. Letztlich steht aber NVE/SSCC hier nur synonym für eine Zahl größer 15 Stellen. Die Einleitung der NVE diente nur dazu, den Fortgeschrittenen vorab deutlich zu machen, weshalb ich wirklich alle Stellen dieser Ziffer benötige. Davon ab, hat nun wirklich jeder der schon mal ein Paket in Deutschland bekommen hat, eine NVE gesehen. Unbekannt ist doch letztlich nur der Sammelbegriff der GS1 "NVE". Passt aber als Abkürzung im textualen und erklärlichen Sinn als "Nummer der Versandeinheit" einfach immer super :)
Anzeige
AW: Mehr als 15 Stellen - Text in Spalten
13.08.2019 21:09:32
onur
Hi Tim,
Ich weiss das zwar, aber man kann nicht einfach davon ausgehen, dass jeder Leser diese Abkürzungen (oder manchmal auch Fachausdrücke) kennt, die man benutzt. Nicht Jeder kennt branchenspezifische Abkürzungen wie SSCC, PID, CMR, NVE oder RMA.
Gruss
Onur
AW: Mehr als 15 Stellen - Text in Spalten
13.08.2019 22:10:56
Tim
Hey onur,
alles gut, stimme Dir da auch vollkommen zu. Ich habe gehofft bzw bin davon ausgegangen mich mit meinem Post speziell an fortgeschrittene zu wenden, denen das dann auch naturgemäß ein Begriff sein müsste. Die NVE ist ja nun quasi in allen Warenwirtschaftssystemen präsent. Nur geben die meisten Systeme dann in den Quelldateien per Export die Werte dann schon als Text-String in den Zellen aus...
.. Vllt muss ich es aber auch an der Stelle der Datenübernahme schon in meinem Code lösen... neuer Gedanke, Danke :)
Aber der ein oder andere kennt das Problem in den Verarbeitungsroutinen dann evtl.
Mein Hauptproblem ist echt, dass TtC anscheinend intern über den Compiler Zahlenwerte als INT behandelt, nicht als String. Obwohl der Name der Funktion (TexttoColoumn) was anderes sagt. Ich habe auch früher schon im MS-VB-Entwicklerbuch gelesen, dass alle vom Compiler erkannten Zahlenwerte IMMER als INT behandelt werden. Egal woher oder aus welcher Funktion sie stammen. Wird ein Zahlenwert erkannt, und ist nicht explizit als Double oder String definiert, wird er immer als INT behandelt. Und in dem Moment kürzt die CPU mir die alle Ziffern ab der 15. Stelle. Der WA für TtC ist der Textqualifier. Die Nutzung selbigen in der Funktion (auch manuell) führt zur Kürzung des Zahlenwertes.
Anzeige
AW: Mehr als 15 Stellen - Text in Spalten
13.08.2019 22:17:28
Daniel
Hi
normalerweise sollte es ausreichen, die Spalte im Schritt 3 des TextInSpalten-Assistenten als TEXT zu formatieren.
Danach musst du sie aber auch noch mit dem Zahlenformat Text formatieren, damit keine Umwandlung in eine Zahl stattfindet, wenn du mal aus versehen reinklickst.
aber wie ich schon schrieb, eine Beispieldatei würde viel helfen.
Gruß Daniel
AW: Mehr als 15 Stellen - Text in Spalten
13.08.2019 22:19:32
onur
"Ich habe gehofft bzw bin davon ausgegangen mich mit meinem Post speziell an fortgeschrittene zu wenden, denen das dann auch naturgemäß ein Begriff sein müsste" - Wieso naturgemäß ? Nicht jeder Fortgeschrittene ist ein Logistiker, es gibt auch -zig andere Branchen.
Wenn du Standard-Excel/VBA-Funktionen nutzt, musst du auch mit Standard-Ergebnissen rechnen.
Wenn Diese nicht reichen, bastelt man sich eben eigene Funktionen.
Drswegen: poste mal die Datei.
Anzeige
Wozu? Reichen die Angaben nicht, ...
14.08.2019 01:05:30
Luc:-?
…onur?
'123456789012345,'1234567890123456,'12345678901234567 usw.
Damit kann man genau das machen bzw testen, was ich unten geschrieben habe. Aber der Anfrager scheint ja lieber mit dir über Abkürzungen zu plaudern als mal die anderen AWen zK zu nehmen… :-|
Gruß, Luc :-?
AW: Wozu? Reichen die Angaben nicht, ...
14.08.2019 06:38:15
onur
Ich weiss, dass es sehr einfach ist, aber ohne zu wissen wie genau die Daten hereinkommen und später weiterverarbeitet werden sollen, bringt es nix, konkrete Vorschläge zu machen, da sonst dauernd Rückfragen aufkommen.
Das wäre allerdings möglich, ...
14.08.2019 16:20:35
Luc:-?
…onur,
aber nun kommt wohl gar nichts mehr…
Luc :-?
Da es manuell fktioniert, ...
13.08.2019 20:17:15
Luc:-?
…Tim,
solltest du ggf versuchen, dieses manuelle Vorgehen per MakroRecorder aufzuzeichnen. Evtl erhältst du so die richtige Befehls­reihen­folge. Allerdings sollten dabei 2 Trennzeichen, Komma und Apostroph, und aufeinanderfolgende als eines behandeln eingestellt wdn.
Anderenfalls bliebe nur noch die Anwendung einer UDF wie bspw VSplit mit Trenner ",'", die ohnehin nur Texte liefert, wenn man nicht in ihrem 3.Argument optionale ZahlUmwandlung verlangt.
>15stellige Zahlen können von Xl ohnehin richtig nur als Text dargestellt wdn, obwohl ein Variant-ZahlText von VBA mit CDec auch in eine stellengenaue Zahl umgewandelt wdn kann, um mit ihr auch rechnen zu können. Das wird hier aber wohl kaum erforderlich sein.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: Mehr als 15 Stellen - Text in Spalten
13.08.2019 21:14:17
Daniel
Hi
kannst du mal ne Beispieldatei mit ein paar Werten und deinem Code hochladen?
man sollte schon genau sehen, wie die Daten vorliegen und was du genau machst.
Ich hätte da auch schon eine Idee für einen Workaround, falls es wirklich nicht geht, aber den würde ich gerne vorher an Echtdaten testen.
Gruß Daniel

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige