Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
420to424
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
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kombinationsfeld gg. unerwünschte Eingaben sperren

Kombinationsfeld gg. unerwünschte Eingaben sperren
Alexander
Hallo,
ich arbeite z. Z. an einer kleinen Kostenabrechnung. In einem Formular kann man sich das Datum selbst zusammenstellen:
Tag und Monat über Kombinationsfelder auszuwählen, das Jahr ist ein Textfeld.
Wie kann ich nun die Kombinationsfelder für Tag und Monat speeren?
Was ich suche ist in etwa Folgendes:
Die Elemente sind aktiv (also enabled und visible oder locked macht hier keinen Sinn). Ich gehe nun davon aus, dass mal die Maus irgendwie herumspinnt und deshalb so zur Not die Zahlen auch per Tastatur eingegeben werden können.
Also, wenn man nun sich quasi als Monat die 07 für Juli ausgesucht hat und dann danach noch etwas eintippt, so soll die Eingabe vermieden werden, d. h. erst gelöscht und dann wieder die 07 erscheinen.
Ist klar, was ich meine? Man soll also so wie man lustig ist Änderungen vornehmen können, doch nach jeder Änderung sprint das Kombifeld wieder auf den ursprünglichen Wert des ListIndexes zurück.
Hier ist mein bisheriger Code dazu, doch der funktioniert nicht:

Private Sub Cbo_Monat_AfterUpdate()
Dim wert As Variant  'Wert des Kombi'feldes anhand des ListIndexes VOR der
'Änderung
wert = Cbo_Monat.ListIndex
If Not IsNumeric(Cbo_Monat) Or Len(Cbo_Tag)>2 Then
'Änderungen wurden vorgenommen
'im K'feld gibt's nur 2-stellige Werte
Cbo_Monat = ""
Cbo_Monat = wert
End If
End Sub

Woran kann's liegen?
Vielen Dank im Voraus für EURE Hilfe!
Alexander

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kombinationsfeld gg. unerwünschte Eingaben sperren
OliveR
Hi Alexander,
vielleicht hilft Dir ja die Änderung des Wertes "MaxLength" in den Properties weiter.
Gruß
OliveR
AW: Kombinationsfeld gg. unerwünschte Eingaben sperren
Alexander
Hallo OliveR,
mit MaxLength können nun nicht mehr als 2 Zeichen eingegeben werden.
Hab herumprobiert, doch komme auf keinen grünen Zweig.
Nach der Änderung soll die Änderung gelöscht werden und wieder auf den zuvor ausgewählten ListIndex gesprungen werden.
Dieser Link zeigt, wie es funktionieren sollte:
Standardwert Monat: -- (entspricht ListIndex = 0)
Auswahl: Mai (05, entspricht ListIndex =5).
Den ListIndex soll der Rechner sich nun merken.
Der User nimmt eine Änderung vor.
Nach Verlassen des Feldes soll der geänderte Text durch den Text von ListIndex = 5 ersetzt werden.
Ist vielleicht ganz einfach, aber ich komm einfach nicht drauf. Und BeforeUpdate funzt bei mir irgendwie nicht...
Gruß
Alexander
Anzeige
AW: Kombinationsfeld gg. unerwünschte Eingaben sperren
OliveR
Hi Alexander,
zwei Möglichkeiten. Musst aber eine Textbox erstellen und Visibility auf False.
Gruß
OliveR
1. Lässt falsche Möglichkeiten zu springt aber wieder zurück

Private Sub Combobox1_beforeupdate(ByVal Cancel As MSForms.ReturnBoolean)
myvalue = ComboBox1.ListIndex
If myvalue = -1 Then
If TextBox1 = "" Then TextBox1.Text = 0
ComboBox1.ListIndex = TextBox1.Text
Else
TextBox1.Text = myvalue
End If
End Sub

2. Lässt Eingaben, die nicht gelistet sind nicht zu.

Private Sub Combobox1_change()
myvalue = ComboBox1.ListIndex
If myvalue = -1 Then
If TextBox1 = "" Then TextBox1.Text = 0
ComboBox1.ListIndex = TextBox1.Text
Else
TextBox1.Text = myvalue
End If
End Sub

Anzeige
AW: Kombinationsfeld gg. unerwünschte Eingaben sperren
Kurt
Liststyle = 2 (liste)
Kurt

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige