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

Textbox: Werteingabe und Vergleich mit anderen TB

Textbox: Werteingabe und Vergleich mit anderen TB
25.01.2005 15:53:02
Frank
Hallo, liebes Forum,
ich habe da folgendes Problem:
Ich schreibe für meinen Sohn ein kleines Mathe-Programm für die Grundschule.
Per Zufallsgenerator werden 2 Werte ermittelt und in je eine Textbox übertragen und angezeigt:
...
TextBox1.Value = a
TextBox2.Value = b
c = a + b
TextBox3.setfocus
...
Nun soll in eine dritte Textbox das Ergebnis (z.B. einer Addition) EINGETRAGEN werden und mit dem errechneten Wert aus den ersten beiden TB verglichen werden.
Mit
if TextBox3.Value = c then...
funktioniert es nicht.
Ich komme einfach nicht weiter und bitte um Hilfe.
Danke, Frank.
AW: Textbox: Werteingabe und Vergleich mit anderen TB
Luc
Hallo Frank,
eigentl erfolgt die Eingabe von Text in die TextBox über die Eigenschaft Text - Value dient zum Anzeigen. Du wirst wohl den Inhalt von TextBox.Text vgl müssen, evtl vorher in eine Variable laden. Schau mal in die online-Hilfe.
Sind das deine 1.VBA-Versuche (wg VBA nein)?
ToiToi Luc
AW: Textbox: Werteingabe und Vergleich mit anderen TB
Frank
Hallo Luc,
zum Letzteren, bin Anfänger.
Wenn ich das richtig verstehe die "Zahlen" als Text einlesen, wie addiert man dann den Text (Umwandlung?).
Grüße, Frank
AW: Textbox: Werteingabe und Vergleich mit anderen TB
Luc
Hi,
die Eigenschaft der TextBox, die den Text enthält heißt '.Text'. Und da steht Text als Text drin (ist ja auch 'ne TextBox). Wenn der Inhalt numerisch ist, müsste man eigentl damit rechnen können (xlAutokonvertierung). Bei Fehler müsstest du das selber machen - clng(), cint(), cdbl(), csgl(), val() stehen hierfür zur Verfügung.
Gruss Luc
Anzeige
AW: Textbox: Werteingabe und Vergleich mit anderen TB
Frank
Hallo Luc,
das Rechnen mit den Werten der TB1 und TB2 ist ja auch nicht das Problem.
Das Problem ist, dass ich in die TB3 SELBER einen Wert eingeben will, der dann mit dem errechneten Wert aus TB1 und TB2 verglichen werden soll, un das funktioniert einfach nicht.
Gruß, Frank
AW: Textbox: Werteingabe und Vergleich mit anderen TB
Luc
Guten Morgen Frank,
aus dem, was Du ursprünglich geschrieben hast, entnehme ich, dass der Wert in TB3 manuell eingegeben werden soll. Mit setFocus müsstest du dann eigentlich drin sein. Ist aber schon 'ne Weile her, dass ich mich mit sowas befasst habe. Muss ich selbst erst mal ausprobieren. Mit Userforms und Inputboxen klappt's auf jeden Fall, da muss es doch auch mit TextBoxen gehen!
Bis dann Luc
Anzeige
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
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige