ich möchte gerne anhand meiner Exceltabelle durch ein Button eine txt.Datei erzeugen. Die txt.Datei muss ich später in ein anderes Tool uploaden und braucht deswegen eine besondere Formatierung.
Excel Datei: Ich habe ein Beispiel-Exceldatei erstellt wie meine Tabelle ungefähr aussieht.
Der Kollege trägt sich dort seine Anfangs- und Endzeit, Pause und Kommentare ein. Außerdem trägt er unter den vorgeschriebenen Aufgaben (z.B. Aufgabe 1), die eine Kennnummer beinhalten ('5874569716329), den Aufgabentyp anhand einer Nummer ein (0061), die jeweilige gebrauchte Stunde (3) und ein zusätzlichen Kommentar (Dokumentenpflege). Oben habe ich ein Button eingefügt das dadurch die txt.Datei erzeugen soll.
https://www.herber.de/bbs/user/151504.xlsx
Txt.Datei: Außerdem habe ich eine Beispiel-txt.Datei erstellt um das Ergebnis zu veranschaulichen. Die erzeugte txt.Datei muss ein reiner Text sein, wie die erste Zeile.
https://www.herber.de/bbs/user/151505.txt
BITTE ACHTUNG; die unterstriche _ habe ich zur Vereinfachung eingefügt, um die unterschiedlichen Felder auszudrücken. Der Erzeugung soll also wie in der ersten Zeile aussehen :
RNNST0000000154128765 0507202005072020000003H APL-XX000004L72 58745697163 0061 Dokumentenpfl*
Ich beschreibe das Beispiel anhand der Zeile 6 in der Excel Datei und die erste Zeile der txt.Datei
unterschiedlichen Felder: Das erste Feld darf nur 2 Zeichen enthalten "RN". Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden.
Das zweite Feld darf nur 1 Zeichen enthalten "N". Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden.
Das dritte Feld darf nur 2 Zeichen enthalten "ST". Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden.
Das vierte Feld darf nur 8 Zeichen enthalten "00000001" und soll eine fortlaufende Nummer sein (siehe txt.Datei erstellen: 1 bis 4 nach "ST") . Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden.
Das fünfte Feld darf nur 10 Zeichen enthalten "54128765 ". Dies ist die Personalnummer in der Exceldatei (D2:E2) zu finden. Wenn es nur 8 Zeichen wie in unserem Beispiel hat, dann soll dahinter 2 Leerzeichen erzeugt werden
Das sechste und siebte Feld darf nur 8 also 16 Zeichen enthalten "0507202005072020". Dies ist das Datum wiederholt in der Exceldatei (B6) zu finden
Das achte Feld darf nur 6 Zeichen enthalten "000003". Dies ist die Stunde in der Exceldatei (J6) zu finden. Bei 10 Stunden wäre es dann "000010".
Das neunte Feld darf nur 3 Zeichen enthalten "H ". Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden. Es drückt sozusagen die Einheit der Stunde aus. Wenn es nur 1 Zeichen wie in unserem Beispiel hat, dann soll dahinter 2 Leerzeichen erzeugt werden
Das zehnte Feld darf nur 8 Zeichen enthalten "APL-XX00". Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden.
Das elfte Feld darf nur 4 Zeichen enthalten "0004". Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden.
Das zwölfte Feld darf nur 6 Zeichen enthalten "L72 ". Dies ist nicht in der Exceldatei zu finden und soll zusätzlich erzeugt werden. Wenn es nur 3 Zeichen wie in unserem Beispiel hat, dann soll dahinter noch 3 Leerzeichen erzeugt werden.
Das dreizehnte Feld darf nur 12 Zeichen enthalten "58745697163 ". Dies ist die Kennnummer der Aufgabe in der Exceldatei (I5:K5) zu finden und wenn es nur 10 Zeichen wie in unserem Beispiel hat, dann soll dahinter noch 2 Leerzeichen erzeugt werden.
Das vierzehnte Feld darf nur 4 Zeichen enthalten "0061". Dies ist der Aufgabentyp, welches durch eine Nummer beschrieben wird und ist in der Exceldatei (I6) zu finden.
Das fünfzehnte Feld soll nur 4 Leerzeichen " " enthalten.
Das sechszehnte Feld darf nur 14 Zeichen enthalten "Dokumentenpfl*". Dies ist das Kommentar in der jeweiligen Aufgabe in der Exceldatei (K6) zu finden. Das Feld soll als 14.tes Zeichen ein * enthalten
Die Felder, wie z.B. "RN" oder "H " also die zusätzlich erzeugten, sind IMMER gleich und werden nie verändert.
Ich hoffe ich konnte es ausführlich genug beschreiben und würde mich über jede Hilfe freuen.
LG