Hallo liebe Gemeindschaft!
Ich entwerfe gerade ein Formular mit Hilfe der Steuerelemente- Toolbox in Excel, klappt auch ganz gut.
Jetzt hab ich áber da so ein paar Probleme.
- Kann man erreichen bzw. einstellen das der spätere Nutzer nur Zahlen eingeben kann?
Kann man in den Eigenschaften den Zahlenberich festlegen?
- Der spätere Nutzer muß etwas in ein Feld eingeben, ansonsten kommt er nicht weiter im Formular, geht das?
Vielen Dank schon mal im vorraus!
Hallo, Maxwell!
Ich entwerfe gerade ein Formular mit Hilfe der Steuerelemente-
Toolbox in Excel, klappt auch ganz gut.
Jetzt hab ich áber da so ein paar Probleme.
- Kann man erreichen bzw. einstellen das der spätere Nutzer
nur Zahlen eingeben kann?
Kann man in den Eigenschaften den Zahlenberich festlegen?
Nein, nicht über die Eigenschaften. Lediglich die maximale Länge könntest Du vorgeben. Alles weitere (Zahlen, Formate, Groß-/Kleinschreibung) musst Du selbst implementieren. Wenn Du nur Großbuchstaben zulassen willst, kannst Du z. B. im KeyPress-Ereignis den Wert von Ascii anpassen. Wenn Du nur Ziffern zulassen willst, machst Du das ggf. ebenfalls hier.
- Der spätere Nutzer muß etwas in ein Feld eingeben,
ansonsten kommt er nicht weiter im Formular, geht das?
Was meinst Du mit „muss eingeben“ und „nicht weiter im Formular“? Soll das heißen, dass er im Formular das erste Feld ausfüllen muss, bevor er das zweite ausfüllen kann. Oder muss er bestimmte Eingaben (in beliebiger Reihenfolge) machen, bevor er zu einem neuen Formular kommt?
Im ersten Fall darf/dürfen nur das/die editierbare(n) Eingabefeld(er) aktiviert sein. Sobald eine plausible Eingabe getätigt wurde, kannst Du die weiteren Felder aktivieren (z. B. im Change-Ereignis). Ist aber vielleicht ein bisschen viel. Lass den Benutzer doch eingeben, was und in welcher Reihenfolge er will. Wenn sich bestimmte Eingaben gegenseitig beeinflussen, wird er schon die sinnvolle Reihenfolge befolgen.
Im zweiten Fall brauchst Du so was wie eine „Weiter“-Schaltfläche, die alle Eingaben auf Plausibilität überprüft. Hierzu sind ggf. die Funktionen Is* sinnvoll (IsNumeric, IsDate etc.). Ggf. wandelst Du die Eingaben gleich in den benötigten Typ (z. B. CDbl, CDate, CLng, CCur, …). Dann kannst Du auch einen Wertebereich überprüfen. Wenn ein Fehler auftritt, gibst Du eine Fehlermeldung aus und lässt den Benutzer die Eingabe korrigieren.
Gruß, Manfred
Hallo Manfred, vielen Dank erst einmal für die schnelle und umfangreiche Antwort,
hab da aber noch so ein paar Fragen, bin da noch nicht so der Spezialist.
Zu 1. Wie implementiere ich ein KeyPress-Ereignis, so dass er nur Zahlen eingeben kann?
Ich gehe in Code anzeigen und dann wähle ich oben links KeyPress, aber wie geht es weiter, reicht es wenn ich das einfach anklicke oder muß ich da noch was dazu schreiben? Wie gesagt, da hab ich keine Ahnung.
Zu 2. Es ist eigentlich egal, ob er eine Reihenfolge einhält, nur ist zum Beispiel die Produktionsnummer umbedingt erforderlich, ansonsten ist das Formular fast unbrauchbar, nur diese Nummer erfordert etwas mühe, und dazu sind manche Menschen halt nicht bereit.
Hallo, Maxwell!
Zu 1. Wie implementiere ich ein KeyPress-Ereignis, so dass er
nur Zahlen eingeben kann?
Ich gehe in Code anzeigen und dann wähle ich oben links
KeyPress, aber wie geht es weiter, reicht es wenn ich das
einfach anklicke oder muß ich da noch was dazu schreiben? Wie
gesagt, da hab ich keine Ahnung.
Da musst Du dann schon ein wenig dazu schreiben. Da Du wohl noch nicht wirklich viel mit VBA gemacht hast, müsstest Du Dich dort mal ein bisschen reinlesen. So ins Blaue hinein Tips bzw. Code zu geben, macht wenig Sinn. Schreib einfach mal genau, was für Plausibilitätsbedingungen sich hinter den einzelnen Feldern Deines Formulars verbergen.
Zu 2. Es ist eigentlich egal, ob er eine Reihenfolge einhält,
nur ist zum Beispiel die Produktionsnummer umbedingt
erforderlich, ansonsten ist das Formular fast unbrauchbar, nur
diese Nummer erfordert etwas mühe, und dazu sind manche
Menschen halt nicht bereit.
Was passiert denn nach der Eingabe? Was soll/kann der Benutzer machen? Gibt es weitere Formulare? Oder wird in einer Tabelle was gesucht? Oder eingetragen?
Gruß, Manfred
Hallo Manfred
Also, bei dem Formular geht es um Reklamationen, die vom Aussendienst ausgefüllt werden sollen.
Ich habe die Felder mit der Steuerelementen- Toolbox erzeugt, mit Textfeldern und Kombinationsfeldern.
Wichtig in unseren Unternehmen sind die Produktionsnummern der Waren, damit wir wissen wer verantwortlich gemacht werden kann, das ist ein 5 stelliger Zahlencode, dieser muß vom Aussendienst eingetragen werden. Sie sollten nur Zahlen eingeben können.
Des weiteren sollten sie beim Datum der Reklamation auch nur Zahlen eingeben können, sowie bei der Reklamationsmenge.
Ich brauch halt das Stück wo drinn steht, das nur Zahlen eingegeben werden können, die länge kann ich ja über die Eigenschaften festlegen.
Es ist nur ein Formular. Wir wollen es den Mitarbeitern nicht so einfach machen, deshalb soll in den Feldern Produktionsnummer und Datum und bei manch anderen auch noch, eine Eingabe erfolgen. Am besten wäre es, wenn sie jedes Feld nacheinander ausfüllen müßten, und wenn sie ein bestimtes nicht haben, müßte eine Meldung angezeigt werden.
Die Informationen werden dann in unseren Unternehmen weiter verarbeitet und in eine Datenbank eingetragen.
Gruß, Maxwell und vielen Dank
Warum drei mal um den Kopf herum fassen, wenn man sich auch direkt gratzen kann?
Das geht einfach über die Gültigkeitsprüfung.
Die zweite bedingung erfülle ich mit dem bedingten Formatbefehl.
Als Anlage sende ich Dir ein Beispiel.
Gruß Hermann
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Hermann,
vielen Dank für den Tipp, aber das funktioniert
nicht mit den Schaltflächen der Steuerelemente- Toolbox.
Man kann Zellen einer Gültigkeit unterstellen, aber das sind ja Schaltflächen bzw. Textfelder.
Oder hast du eine Idee wie das geht?
Danke, MfG Maxwell