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

Eingabemaske dynamisch erstellen

Eingabemaske dynamisch erstellen
11.07.2013 11:45:08
Thomas
Endlich habe ich Zeit mich etwas mit der Thematik Userform zu beschäftigen.
Also mal wieder ein Anlauf ein altes Problem zu lösen ;)
Ich möchte folgendes erreichen. In einem Verzeichnis C:\erf liegt eine Text-Datei (SPEC) die folgenden Aufbau hat, jede Zeile besteht aus.
Spalte 1-10 = TEXT
Spalte 11 = Feldinfo
Spalte 15-16 = Feldlänge
Also z.B.
ÜBERSCHRIFT
Name t 15
Telefon z 30
usw.
t=text - z=ziffern - ÜBERSCHRIFT Name des Projektes in der ersten Zeile
Nun soll folgendes passieren, in das Verzeichnis wird eine Excel-Datei (leer.xls) kopiert und die 'gestartet' - nun soll Excel die Text-Datei auslesen und aus den Daten darin ein Userform generieren.
Also ein Fenster (bildschirmfüllend), in welchem oben in der Mitte der Text von ÜBERSCHRIFT steht.
Dann soll einfach in vernünftigem (selbst festzulegenden) Abstand links oben begonnen werden die Felder im Formular abzubilden.
Mit der Beschreibung (Spalte 1-10) davor und eben immer das angegebene Format und die angegebene Länge.
Die Maske ist dann fertig, wenn SPEC zu ende ist und dann kann die Erfassung von Daten beginnen.
Diese Daten(sätze) sollten dann in der Excel-Datei (immer in einer Zeile ein Datensatz) abgespeichert werden.
Während der Eingabe sollte man noch mit einer beliebigen Taste (z.B. +) zum xten Eingabefeld (das muss definierbar sein) hinspringen können.
Am Ende ist dann leer.xls gefüllt mit zeilenweise Daten.
So - ist soetwas machbar - wie gesagt, ich würde mich gerne in die Materie einarbeiten, das Projekt kann schon ein paar Wochen (auch Monate) dauern, bis es richtig gut läuft.
Gibt es da irgendwo Beispiele/Anleitungen, wie man sowas erreichen kann?
Ein zwei Sachen dazu habe ich schon gefunden, aber ein paar mehr wären hilfreich ;)
Wenn noch Verständnisfragen zu dem Problem bestehen, immer her damit. Ich denke als ersten Punkt muss ich mich erstmal mit dem Komplex UserForm beschäftigen, oder?
Tommi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabemaske dynamisch erstellen
11.07.2013 12:46:44
Oberschlumpf
Zitat:
"das Projekt kann schon ein paar Wochen (auch Monate) dauern, bis es richtig gut läuft."
Tommi, hast du denn auch so viel Geld für mich, wenn z Bsp ich mich mehrere Wochen/Monate mit deinem Projekt beschäftige?
Thorsten

AW: Eingabemaske dynamisch erstellen
11.07.2013 13:16:31
Thomas
Die Frage verstehe ich nicht ganz - ich bin eigentlich nur auf der Suche nach jemandem der sich damit auskennt und mir 2-3 Anregungen geben kann, ob es überhaupt geht und wo ich Ansätze dazu finden kann. Ich will keine Lösung, sondern einen fachlichen Kommentar ob das geht und (das wäre halt ergänzend noch besser)wo ich da am besten anfange (mein Wissen auszubauen).
Das da konkret im Einzelfall noch mal die ein oder andere Frage kommt ist ja klar, aber ich will ja (ganz bestimmt nicht) das mir jemand das vorkaut oder gar macht - das kommt, wenn ich es nicht schaffe ;)
Tommi

Anzeige
AW: Eingabemaske dynamisch erstellen
11.07.2013 13:49:36
Oberschlumpf
ok, dann zeig uns doch mal ne Bsp-txt-Datei + ne Bsp-Excel-Datei, in der wir dein Userform sehen können, wie es aussehen soll, wenns fertig ist.
Die Bsp-Dateien brauche zumindest ich, weil ich natürlich auch in Excel testen muss. Aber ich will deine Dateien nicht nachbauen, weil ich den Aufbau nicht kenne + weil du die Dateien ja schon hast.
Thorsten
p.s.
schön wäre es natürlich auch, wenn du deine Beiträge mit einer Anrede beginnst - macht das Ganze n bissi freundlicher in der Kommunikation

AW: Eingabemaske dynamisch erstellen
11.07.2013 14:03:35
Thomas
Hallo Thorsten,
ups, mache ich eigentlich immer, sorry für den Umgangstonfehler...
Die BeispielText-Datei hatte ich im ersten Post ja schon enthalten, das war genau so eine, also die 3 Zeilen, eben ein Beispiel...
Das mit der Excel-Datei ist doch genau das was ich versuche rauszukriegen, eben ob das überhaupt mit Excel geht/gehen kann - genau das ist der Grund meines Postings ;)
Was meinst du mit 'die Dateien die ich schon habe? Was ich habe sind beliebig viele Script-Dateien, wie im Beispiel und das finale Endergebnis - und da will ich mit einer Eingabemaske (die dynamisch - eben aus der SPEC-Datei kommend - generiert wird) hin.
Das Endergebnis ist halt auch wieder eine reine TextDatei wo die eingegebenen Daten nach Eingabeende abgelegt werden.
LG,
Tommi

Anzeige
AW: Eingabemaske dynamisch erstellen
11.07.2013 18:56:34
Oberschlumpf
Hi Thomas
Die BeispielText-Datei hatte ich im ersten Post ja schon enthalten
Hast du nicht!
Es steht ein bisschen Bsp-Text + ein bisschen Erklärung zum Aufbau der txt-Datei - aber eine richtig, echte, von dir hochgeladene txt-Datei ist NICHT vorhanden.
Das mit der Excel-Datei ist doch genau das was ich versuche rauszukriegen, eben ob das überhaupt mit Excel geht/gehen kann - genau das ist der Grund meines Postings
Damit meinte ich, dass du per Hand so ein Userform erstellst und gespeichert in einer Excel-Datei uns zur Verfügung stellst. Dann können wir nämlich sehen, wie dein Userform nach deinen Wünschen aussehen soll.
Ich habe schon oft anhand von nur Erklärungen, wie wann wo warum jemand eine VBA-Lösung haben will, eine VBA-Lösung erstellt.
Aber leider war zu oft die Antwort des Fragenden: "Das passt so nicht, weil noch das und das da und da hin soll" (was der Fragende aber vorher NICHT erwähnt hatte!)
Dafür ist mir meine Zeit zu schade, die ich ja, wie jeder andere hier, kostenlos zur Verfügung stellt.
Und deshalb benötige zumindest ich Bsp-Dateien, die aber NICHT ich erstellen muss.
Aber is ja nich schlimm. Zwei Andere versuchen ja schon, dir zu helfen.
Ciao
Thorsten

Anzeige
AW: Eingabemaske dynamisch erstellen
11.07.2013 14:42:36
GuentherH
Hallo Tommi,
hier ein Beispiel für den Start:
https://www.herber.de/bbs/user/86317.xlsx
speichern unter: D:\Home\Vorlagen\Codebeispiele\SPEC.xlsx
https://www.herber.de/bbs/user/86318.xlsm
speichern unter: D:\Home\Vorlagen\Codebeispiele\SpecInForm.xlsm
und dann SpecInForm.xlsm öffnen.
der Pfad ist nötig, da noch starr programmiert.
Das sollte als Startpunkt für Deine nächsten Monate dienen können, oder?
beste Grüße,
Günther

AW: Eingabemaske dynamisch erstellen
11.07.2013 13:47:54
fcs
Hallo Tommi,
mit Kenntnisstant "VBA-bescheiden" ist so ein Projekt schon sehr ambitioniert.
Grundsätzlich kann man das wohl irgendwie umsetzen, aber es wird kompliziert.
Du bekommst aber schon beim Start von Office/Excel einige Hindernisse in den Weg gelegt.
Diese betreffen zum Teil sicherheitsrelevante Einstellungen in Bezug auf Makros/VBA-Projekte.
1. Jede(r) der deine Textdatei plus die Datei mit den Makros/Vorlagen zum Erzeugen des Userforms benutzen will/soll muss den Zugriff auf das VBA-Projekt zulassen. Dies kann nicht von extern gesteuert werden.
2. Sollen Kennwörter für das VBA-Projekt verwendet werden, dann kann man dies per VBA nicht oder nur mit einigen Klimmzügen umsetzen.
3. Die per Code an einem Userform gemachten Änderungen werden nicht in der Datei gespeichert. D.h. wenn zu einer Datei nach Speichern und Schliessen weitere Datensätze hinzugefügt werden sollen, dann muss beim Starten des Userforms dieses immer erst neu generiert/angepasst werden.
Warum willst du denn unbedingt die Informationen in einer SPEC-Text-Datei speichern?
Warum erstellst du nicht entsprechende maßgeschneiderte Excel-Vorlagedateien inklusive Userform?
Gruß
Franz

Anzeige
AW: Eingabemaske dynamisch erstellen
11.07.2013 13:58:41
Thomas
Danke Franz für die umfangreiche Antwort,
PW-Schutz ist kein Thema, auch das 'Zulassen von ausführbarem Code nicht' - das Programm wird nur von Leuten genutzt, die wissen was sie tun.
Zu der Frage des Warum - naja, weil es einfacher ist? Wenn man eine Maske so scriptgesteuert anlegt, dann ist das für eine relativ komplexe Vorlage eine Minutenangelegenheit (bei 100-250 Feldern), für jeden, der die Materie kennt. Wenn ich das in Excel jedesmal quasi 'von Hand' generiere, dann dauert es (im Vergleich) endlos viel länger.
Zum Vergleich, nach dem Schema läuft das ganze schon seit >20 Jahren und der Zeitaufwand für das Erstellen der Eingabemaske liegt mit so einer Scriptdatei in der Regel (abgesehen bei großen Projekten) bei als 3-20 Minuten.
Abgesehen davon gibt es die Scripte schon in 1000facher Form sie werden oft nur angepasst ;)
Ich will quasi nur ein bestehendes Programm mit Excel 'nachbauen' - langsam beginne ich aber daran zu zweifeln ob das Sinn macht oder ich nicht eine andere Programmiersprache nehmen sollte - Excel bot sich halt an, weil ich damit eh ständig zu tun habe, aber vlt. wäre etwas anderes sinnvoller (es geht ja eigentlich nur um eine Erfassungsmaske die die ganzen erfassten Werte dann zeilenweise in eine Text-Datei ausschreibt...
Tommi

Anzeige
AW: Eingabemaske dynamisch erstellen, VBA kopieren
13.07.2013 12:07:40
fcs
Hallo Tommi,
ich hab in meinem Fundus noch etwas rumgestöbert. Gefunden hab ich eine Datenbankeingabe mit fest vorgegebenen Eingabe-Steuerelementen.
Ich hab das jetzt mal dynamisiert, so dass die Eingabetextboxen aus einer SPEC.txt heraus generiert werden.
Bis auf die Eingabeprüfung bei Textfeldern mit Typ "z" hab ich das schon umsetzen können. Auch das Übertragen der VBA-Komponenten aus der Steuerdatei in die jeweilige Leer-Datei klappte am Ende einfacher als ich anfangs gedacht hab.
In der ZIP-Datei findest du 2 Varianten der Steuerdatei. Diese unterscheiden sich darin, wie die Textboxen im Userform plaziert werden. Das wird aber erst sichtbar, wenn du mehr als 50 Textboxen plazierst. Die SPEC.txt und die Leerdatei.xlsx, mit denen ich gearbeitet hab sind auch drin.
https://www.herber.de/bbs/user/86337.zip
Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige