Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1408to1412
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

Change-Funktion

Change-Funktion
27.02.2015 08:01:13
Gregor
Hallo zusammen
In einer UF wende ich bei den TextBox die Change-Funktion an (Private Sub TextBox1_Change). In einem Feld darf der Wert 10 nicht unterschritten, weshalb ich eine MsgBox hinterlegt habe und den Wert per vba auf den Mindestwert 10 setze. Sobald der Wert im Feld nun aber geändert wird, dh. wenn ich 17 schreiben will, wird bei der 1 bereits die Msg-Meldung ausgelöst und der Wert auf 10 gesetzt(eigentlich logisch).
Wie kann ich das lösen, ohne auf die Change-Funktion zu verzichten.
Danke und Gruss
Gregor

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change-Funktion
27.02.2015 08:06:33
hary
Moin
Nimm das Exit Ereigniss.
gruss hary

AW: Change-Funktion
27.02.2015 08:37:46
Gregor
Hallo hary
Das ist schon mal besser, dieses Erignis kannte ich nicht.
Nur muss der User beim Exit-Ereignis in ein anderes Feld klicken, damit die Prüfung und Neuberechnung ausgeführt wird. Beim Change-Ereignis löse ich immer eine Neuberechnung aus (Call Automatisch_Berechnen), damit das Ergebnis-Feld bei jeder Änderung aktualisiert wird. Wenn beim Exit-Ereignis der Cursor im Feld belassen wird, geschieht eben nichts.
Evt. kann das jedoch nicht wunschgemäss gelöst werden.
Gruss Gregor

AW: Change-Funktion
27.02.2015 08:47:44
hary
Moin
Dann nimm in Change die Laenge vom Inhalt.
Private Sub TextBox1_Change()
If Len(TextBox1) = 1 Then
MsgBox "Zahl ist unter 10"
End If
End Sub

gruss hary

Anzeige
AW: Change-Funktion
27.02.2015 09:25:10
Gregor
Hallo hary
Danke, aber auch bei Len kommt beim 1. Eintrag sofort die Msg-Meldung.
Gruss Gregor

AW: Change-Funktion
27.02.2015 09:37:34
Daniel
Hi
was erwartetst du?
entweder prüfst du permanent, dann muss sofort die Meldung kommen, dass der Wert noch nicht stimmt,
oder du prüfst erst nach bei Eingabeende. Dazu muss aber VBA irgendwie erkennen, wann die Eingabe zu Ende ist und dass kann nur das Exit- odre AfterUpdate-Event und dazu musst du die Textbox verlassen.
ich würde das prinzipell so lösen:
1. im Change-Event prüfst du zwar permanent, bringst aber nur eine "softe" Hinweismeldung, dh keine Messagebox, sondern nur vielleicht ein Label welches du einblendest, oder eine Rotfärbung der Textbox.
Durch diesen "soften" Hinweis wird die weitere Eingabe nicht gestört.
2. beim Verlassen der Textboxt (Exit, AfterUpdate) erfolgt dann nochmal eine Prüfung mit "harter" Hinweismeldung (Messagebox), ggf damit gekoppelt, dass der Anwender die Textbox nicht verlassen kann wenn der Wert nicht stimmt (hierzu im Change-Event die Variable Cancel = True setzen).
Gruß Daniel

Anzeige
AW: Change-Funktion
27.02.2015 11:35:15
Gregor
Hallo Daniel
Was ich will:
Sobald eine Zahl in irgend einer Textbox (UF) verändert wird, wird mit dem Change-Ereignis das Makro "Automatisch Berechnen" ausgelöst. Damit wird bei jeder Änderung das Ergebnis in der Ergebnis-textbox aktualisiert bzw. richtiggestellt.
Ausser bei der Textbox (zB. txt_z) sind keine Einschränkunen nötig, weshalb diese super funktionieren. Bei txt_z darf aber wie gesagt der Wert nicht kleiner 10 sein und das versuche ich zu lösen, ohne das Change-Ereignis wegzulassen. Das hiesst, wenn jemand die Eingabe von 13 auf 17 ändert, sollte die Automatische Berechnung ohne Hinweis durchgeführt werden. Erst bei einem Eintrag kleiner 10 soll eine Meldung erscheinen und der Eintrag in der Textbox auf den Mindestwert 10 gesetzt werden.
Aber, aufgrund euren Ausführungen ist das so vermutlich nicht lösbar.
Danke und Gruss
Gregor

Anzeige
AW: Change-Funktion
27.02.2015 11:45:44
hary
Moin
Wie waer's wenn du im Berechnen-Makro als allererstes pruefst ob in Textbox eine Zahl groesser 9.
gruss hary

AW: Change-Funktion
27.02.2015 14:43:04
Gregor
Hallo
Ich habe es im Berechnungscode mit > 9 und Dennoch vielen Dank für die Unterstützung.
Gruss Gregor

AW: Change-Funktion
01.03.2015 17:15:27
Daniel
Hi
das Change-Event kann immer nur ermitteln, welcher Wert gerade in der Textbox steht.
es kann nicht in die Zukunft schauen und vorhersagen, ob der Anwender noch weitere Ziffern hinzufügen will oder nicht.
Das einzige was du machen kannst ist prüfen, ob die Bedingugn erfüllt ist und wenn ja, die Berechung ausführen und wenn nein die Berechnung nicht ausführen.
eine Messagbebox würde ich erst im AfterUpdate- oder Exit-Event ausgeben.
Gruß Daniel

Anzeige
AW: Change-Funktion
02.03.2015 09:16:53
Gregor
Hallo
Danke für eure Inputs.
Gruss Gregor

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige