AW: Textbox: Finale - funktioniert!
Luc
So Frank,
hab's ausprobiert und es läuft. Ich nehme an, du benutzt eine Userform, auf der du die Textboxen untergebracht hast. Wahrscheinlich lädst du die Form mit einem ganz normalen irgendwie ausgelösten (Startbutton, belieb Objekt) Makro und machst gleich weiter bis zum setFocus... Weiter kann's auch nicht gehen, das Makro ist jetzt zuende, die Form übernimmt die Regie - und die und alles, was sich auf ihr befindet, wartet auf Events, die durch ihre Bedienung ausgelöst wdn. Und dazu musst du separate Ereignisprozeduren schreiben! Wenn du auf dem Entwurfsblatt auf die Form doppelklickst, wird das zugehörige Modulblatt angezeigt. Im linken Auswahlsichtfenster findest du dann alle Objekte und im rechten die jeweils ausgewerteten Events. Damit du die Form in mehreren Durchgängen hintereinander nutzen kannst, schlage ich dir die ff Basisprozeduren vor (funktionsfähig!):
auf normalem Makromodul...
Sub Mathe()
Load UserForm1
UserForm1.Show
End Sub
auf UserFormModulblatt...
Option Explicit
Dim a As Long, b As Long, c As Long
Private Sub CommandButton1_Click()
Dim r As Integer
r = Array("+", "-", "*", "/")
Randomize
Label1.Caption = r(Int(4 * Rnd))
End Sub
Private Sub TextBox3_AfterUpdate()
With TextBox3
If .Value <> "" And .Value = c Then
.Text = "OK"
ElseIf .Value <> "" Then
.Text = "falsch"
Rem .Text u. .Value sind synonym!
End If
End With
End Sub
Private Sub UserForm_Click()
Randomize
a = Int((100 * Rnd) + 1)
b = Int((100 * Rnd) + 1)
TextBox1.Value = a
TextBox2.Value = b
TextBox3.Value = ""
Select Case Label1.Caption
Case "+"
c = a + b
Case "-"
c = a - b
Case "*"
c = a * b
Case "/"
c = a / b
End Select
TextBox3.SetFocus
End Sub
Wie du bemerken wirst, habe ich gleich alle 4 Grundrechenarten vorgesehen, wobei die mit Zeichen auf Label1 auch per Zufall wechseln.
Dann noch viel Spaß mit der Endgestaltung, Luc