Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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 aus Vorgabescript erstellen

Eingabemaske aus Vorgabescript erstellen
TommiH
Hallo,
heute habe ich mal ein (für mich) arg kniffeliges Problem. Und zwar möchte ich Folgendes realisieren. Ich habe eine Art Steuerdatei (in ASCI)
Name: Projekt1
Feld1: 12t
Feld2: 5z
Feld3: 5t
Feld4: 5m
usw.
Feld30: 5t
Aus dieser Steuerdatei möchte ich folgendes erzeugen: Und zwar eine Eigabemaske die gestartet wird und dann obendrüber den Projektnamen anzeigt und darunter (mehrspaltig wenn nötig - eben so das alles auf dem Bildschirm zu sehen ist) Eingabefelder.
Diese sollen für Feld1 12 (t)extzeichen erlauben, für Feld2 5 (z)iffern, für Feld3 5 (t)extzeichen und für Feld5 soll später bei Eingabe von maximal 5 ziffern diese in 1/0 umgewandelt werden, also bei Eingabe von 123 soll später 111__ rauskommen, bei 13 1_1__ und bei 1235 soll 111_1 rauskommen (also die _ sind Leerzeichen und die eingegebene Ziffer definiert die Position wo später eine 1 gesetzt werden soll)
Wenn man bei Feld 30 (mit der Eingabe) angekommen ist, dann sollte alles mit einer aufsteigenden ID-Nr (1-2-3-4 usw) in eine Textdatei geschrieben, die Maske gelöscht und wieder von vorne begonnen werden.
Das Ganze muss aber mit der Steuerdatei funktionieren, da das händische Erstellen der Maske zu zeitaufwändig ist, also lieber einmal viel Zeit/Grips in ein VBA-Programm investieren und dann immer mit einer einfachen Steuerdatei eine Maske generieren.
Mein Problem besteht nun eigentlich darin, nimmt man da vorhandene Excel-Möglichkeiten oder bastelt man sich das unter VBA selber zusammen (eine eigene Eingaberoutine, die halt die möglichen Werte abfragt und umsetzt usw.)
Da läge mein Hauptproblem vermutlich in dem relativ freien platzieren der Eingabefelder auf dem Bildschirm.
Stand jemand schonmal vor einem solchen Problem oder weiss wo man da evtl. etwas als Referenz finden könnte um sich schlau zu machen?
Ansonsten die vlt. einfachere Frage, wie positioniere ich (unter VBA) ein Eingabefeld an bestimmten Koordinaten welches eine VBA-gesteuerte Eingabe zuläßt, den Rest versuche ich dann selber zu basteln ;)
Tommi

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
mit 'nem UserForm
15.06.2011 19:21:20
Christian
Hallo Tommi,
ich würde hier ein UserForm (-ular) verwenden. Hier kannst du Textfelder positionieren, wie es dir günstig erscheint und in den Ereignissen der Textboxes die Tastatureingabe verarbeiten.
Ebenso ist es möglich deine Steuerdatei (Text-Datei) z.Bsp beim Drücken eines Buttons einzulesen und auch die Eingaben in eine Textdatei zu schreiben.
Das läuft alles per VBA.
Ein einfaches Bsp für die ersten zwei Textboxes mit hard codierten Längen (Code im Modul des userforms):
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Me.TextBox1) = 12 Then
KeyAscii = 0
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57                               'nur Ziffern
Case Else: KeyAscii = 0
End Select
If Len(Me.TextBox2) = 5 Then KeyAscii = 0
End Sub

Wie mal Textfiles einliest und schreibt, findest du im Archiv hier bei Herber. Bei dem Feld 5 wird der Code ein bisschen aufwendiger, lässt sich aber leicht umsetzen. Das Ergebnis von Feld 5 würde ich z.B.. in einem separaten Feld (zB. Label) darstellen - sprich aus 1235 wird 111_1.
Grüße
Christian
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige