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

SetFocus

SetFocus
20.07.2004 16:00:57
Sergej
Hallo,
ich habe folgendes Problem:
ich habe eine UserForm mit zwei Frames, in dennen TextBoxes positioniert sind, und zwei CommandButtons "OK" und "Cancel" außerhalbs der Frames.
ich habe die TextBoxes so programmiert,das sie erst auf richtig eigegebenen Datum kontroliert werden. Wenn der Wert False ist sie sollen den Focus beibehalten, bis der Wert True ist. So weit Vorgeschichte...
Das alles funktioniert aber nur teilweise: wenn ich irgendein Objekt innerhalb der gleiche Frame anclicke funktioniert alles (sprich, der Focus bleibt auf dem TextBox), wenn ich aber ein Objekt in der anderen Frame oder die beiden CommandButtons anclicke bleibt der eingegebener Wert (was False ist) stehen und mit "OK" clicken die False-Werte werden dann in der anderen UserForm akzeptiert, was aber nicht sein darf!
Code ist:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim myDate1 As Date
If IsDate(Me.TextBox1) Then
myDate1 = Format(Me.TextBox1, "dd.mm.yyyy")
MsgBox myDate1
TextBox1.Value = myDate1
Else
Cancel = True
With TextBox1
'.SetFocus habe ich gezielt ausgelasen, damit bei Cancel'ln keine Fehlermeldung erscheint (nur wenn Wert False ist)
.SelStart = 0
.SelLength = Len(.Text)
End With
MsgBox "Kein gültiges Datum."
End If
End Sub

Ich hoffe auf EURE Hilfe

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SetFocus
Ramses
Hallo
Das hatten wir doch kürzlich schon mal ?
Das Frame fungiert als übergeordnetes Object. Setze die Prüfung auch noch in das Exit-Ereignis des Frames dann geht es.
Gruss Rainer
AW: SetFocus
Sergej
to Ramses
Danke für die schnelle Antwort
ich habe leider 10 Boxes pro Frame und dachte es gäbe eine intelligentere Lösung, als alle TextBoxses beim Verlassen der Frame einzeln zu prüfen...
AW: SetFocus
Andre
Hi, wie wäre es, wenn du in das Exit-Ereignis des Frames ein SetFocus auf eine weitere Textbox dieses Frames setzt (diese Textbox könnte man noch minimieren, damit man diese nicht mehr sieht!) und schon sollte das Exit-Ereignis des Frames zwangsläufig die Exit-Ereignisse der entsprechenden Textboxen auslösen.
Gruß Andre
Anzeige
AW: SetFocus
Sergej
ich werde es Morgen mal probieren. Danke. ;)
AW: SetFocus
Sergej
Hi Andre,
ich habe dein Vorschlag ausprobiert und als Ergebniss - ich komme aus der Frame überhaubt nicht mehr raus.
Ich dachte mehr an irgendetwas wie:

Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
For each TextBox (in Frame) do
If Me.TextBox1 = "" Or Not IsDate(Me.TextBox1.Value) Then
Me.TextBox1 = oldDate1
Cancel = True
End If
Next
End Sub

oder ähnliches aber ich weiss nicht, ob das überhaubt geht (bin noch ein "greenhorn"). Die "oldDate1" soll aus einer Vorlage beim Starten der UserForm eingelesen werden (nächstes Problem: es soll erst die Standart_EXE mit UserForm gestartet werden und dann aus dieser die Vorlage, die nach den Änderungen unter einem neuen Namen automatisch gespeichert werden soll).
Für JEDE Hilfe bin ich sehr dankbar!!!
Gruß Sergej
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige