Hallo,
Habe ein Formular mit vielen Eingabefeldern
im Formular ist Feld1 focusiert --> Eingebender soll Werte
die entweder netto oder brutto eingeben. Gibt er brutto ein,
alles ok ! gibt er netto ein soll durch Betätigen des Buttons
der Wert brutto werden
nächstes Feld2 --> dito Problem, der GLEICHE Button soll
für weitere 40 Felder tätig werden (ich kann nicht für jedes
Feld einen Button haben)
usw…
Hallo,
ich habe eine Lösung, die funktioniert aber leider nicht die kürzeste Version darstellt.
Für jedes Eingabefeld wird eine Ereignisprozedur eingerichtet, die bei Eintritt in das Eingabefeld einen Verweis auf sich selbst an eine öffentliche Variable übergibt.
Bei Klick auf einen Button kann dann mit Hilfe des letzten Verweises auf das jeweilige Feld zurückgegriffen werden.
Dim aktuellesFeld As Control
Private Sub Text0\_Enter()
Set aktuellesFeld = Screen.ActiveControl
End Sub
Private Sub Text1\_Enter()
Set aktuellesFeld = Screen.ActiveControl
End Sub
Private Sub Text2\_Enter()
Set aktuellesFeld = Screen.ActiveControl
End Sub
Private Sub BruttoButton\_Click()
aktuellesFeld.Value = aktuellesFeld.Value \* 5 'stellvertretend für Bruttoberechnung
End Sub
Alternativ kann man ein Klassenmodul einrichten, welches das Eintrittsereignis für jedes Eingabefeld „abfängt“ und die entsprechende Prozedur für das jeweilige Feld ausführt. Dann spart man sich für z.B. 40 Eingabefelder die einzelnen Ereignisprozeduren. Sowas ähnliches habe ich schon mal gesehen aber leider reichen meine Programmierkenntnisse bzgl. Klassenmodulen nicht aus, um dies zu erstellen. Vielleicht kann hier jemand anderes weiterhelfen.
Gruß, tester!