Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: textbox multiplizieren und erg. in textbox eintrag

textbox multiplizieren und erg. in textbox eintrag
17.01.2005 15:33:01
roland
hier roland
ich will in zwei textboxen zahlen eintragen und diese dann multiplizieren
so dass das ergebniss in einer dritten tsxtbox erscheint.
zb b in text box 1 steht schon zahl5
ich schreibe in textbox2 ein zahl z b 4
dann sollte in textbox3 zahl 20 erscheinen wenn corsor noch der textbox2 oder wenn mit dem cursor die box verlasse.
bisher hatte ich einen commandbutton der das produkt in die textbox3 schreibt.
danke fuer die hilfe
gruss roland
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: textbox multiplizieren und erg. in textbox eintrag
Boris
Hi Roland,
nutze dazu das Change-Ereignis der Textbox.
Grüße Boris
So etwa...
RR

Private Sub TextBox2_Change()
TextBox3.Value = textbox1.value * textbox2.value
End Sub

Gruß
RR
AW: So etwa...gut aber nicht ganz :.((
17.01.2005 18:02:11
roland
hi RR
danke das war schon mal hilfreich
es funkt wenn textbox2 ausfuelle
das sollte aber auch gehn wenn in textbox1 werte ändere dann wieder in textbox2
die boxen werden von einem andern sub aus wechselseitig gefuellt und sollten
dann immer in der textbox3 das ergebniss zeigen
danke fuer deine muehe
gruss roland
Anzeige
AW: So etwa...gut aber nicht ganz :.((
Boris
Hi Roland,
nix für Ungut - aber stimmt dein angegebener Level "VBA gut"?
Weise die gleiche Codezeile der 1. Textbox zu...
BTW: Für ne Ergebnisausgabe würde ich keine Textbox, sondern ein Label verwenden.
Zudem gehören da noch Fehlerbehandlungen mit rein, falls denn wirklich auch mal (versehentlich) Text eingegeben wird - ohne fliegt der der Code nämlich sofort ab...
Grüße Boris
Anzeige
AW: So etwa...gut aber nicht ganz :.((
roland
hier nochmal roland
level gibts nur kein vba oder gut :-((
mein level ist ein bisschen
das habe probiert mit beiden code in beiden textboxen
aber dann kommt laufzeitfehler ?
komme einfach nicht weiter so :.((
drum habe mal die mappe hochgeladen
https://www.herber.de/bbs/user/16247.xls
wäre nett wenn du dir das anschaust ..
danke ....hmm ev ...ne ganz triviale sache ...
gruss roland
ps bin erst gegen 22 ihr wieder am rechner
Anzeige
Der Casus Cnaxus....
Boris
Hi Roland,
...liegt darin, dass zu Beginn einer Eingabe die 2. Textbox leer ist - und eine Multiplikation mit einem Leerstring führt eben zu einem Fehler.
Ich hatte das heute im Laufe des Tages noch mit xl97 getestet - da wird das anscheinend noch verziehen. Aber jetzt - unter xl2000 - wird´s angemeckert.
Um das jetzt erstmal schnell zum Laufen zu bringen, kannst du die Holzhammer-Methode verwenden und den Fehler einfach unterdrücken:

Private Sub TextBox1_Change()
On Error Resume Next
TextBox3.Value = TextBox1.Value * TextBox2.Value
End Sub


Private Sub TextBox2_Change()
On Error Resume Next
TextBox3.Value = TextBox1.Value * TextBox2.Value
End Sub

Grüße Boris
Anzeige
AW: Der Casus Cnaxus....
17.01.2005 22:37:44
roland
oh danke ...irgendwie habe daran gedacht dass multiplizieren mit 0 eventuell nicht angenommen wird ,,,ich probier das gleich ...danke
im nachfolgenden code steht CDbl(TextBox3 was heisst denn das CDbl ?

Private Sub CommandButton1_Click()
If IsNumeric(TextBox2) And IsNumeric(TextBox3) Then _
TextBox4 = CDbl(TextBox2) * CDbl(TextBox3)
End Sub

hätte noch ein problem nicht fertig geloest:
wenn du dir das anschaust ,,,ich kan aber auch warten bis der bisherige beantworter das
nochmal anschaut.
es hadelt sich um den beitrag:
https://www.herber.de/forum/index.htm?https://www.herber.de/forum/messages/548303.html
und da der code:

Private Sub chkBox()
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.CheckBox Then
ctrl = False
End If
Next
End Sub

das ding soll die eingabe in checkboxen wieder ermoeglichen .
PS: in die checkboxen gelangen nur zahlen ...ueber andere prozeduren es kann kein text dahingelangen
aber ne abfrage und dann ne msgbox nur zahlen moeglich wäre ev doch sinnvoll
danke dir fuer die muehe
hmm.....ich suche jemanden der mir bei der weiterführung ....ev auch in vb.net oder VB
hilft ,,,gegen unkosten in dem fall jedoch im Rahmen,,:-((
ich weiss gar nciht ob die gegen die forumsregeln verstösst hmmm...in dem fall sorry!
danke dir fuer die hilfe ,,,so gehts jedenfalls weiter ...gruss roland
Anzeige
Umwandlungsfunktionen
Boris
Hi Roland,
im nachfolgenden code steht CDbl(TextBox3 was heisst denn das CDbl ?
CDbl ist eine der Umwandlungsfunktionen. In deinem Fall wird mit CDbl aus dem Text (einen solchen gibt nämlich - wie der Name bereits sagt - eine Textbox zurück) ein Datentyp erzeugt, der Fließkommazahlen mit doppelter Genauigkeit als 64-Bit-Zahlen im Wertebereich von -1.79769313486231E308 bis -4,94065645841247E-324 für negative Werte und von 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte enthält.
Das entspricht dem normalen Datentyp Double.
Diese Umwandlung ist eigentlich Zeichen guten Programmierstils, wenngleich auch ohne Typumwandlung einiges funktioniert (manches aber eben auch nicht).
Gib mal im VBA-Editor CDbl ein, Cursor drauf und F1 - da steht dann alles, was man braucht.
Den anderen Beitrag müsste ich mir erstmal in Ruhe anschauen - allerdings bist du da mit Josef an einen sehr kompetenten VBA-Crack geraten - er wird schon wieder auf das Posting reagieren.
Grüße Boris
Anzeige
AW: Umwandlungsfunktionen
17.01.2005 23:36:00
roland
ah ok...danke ....hatte in hilfe eingegeben aber nichts gefunden
vielen dank
das andere tread warte ich ab
gruss roland
Sepp hat dir noch geantwortet...oT
Boris
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Textboxen multiplizieren und Ergebnisse anzeigen


Schritt-für-Schritt-Anleitung

Um in Excel Textboxen zu verwenden, die nur Zahlen akzeptieren und die Ergebnisse einer Multiplikation in einer dritten Textbox anzeigen, folge diesen Schritten:

  1. Füge die Textboxen hinzu:

    • Öffne den VBA-Editor (ALT + F11).
    • Füge ein UserForm hinzu und ziehe drei Textboxen (TextBox1, TextBox2, TextBox3) auf das Formular.
  2. Code für die Textboxen einfügen:

    • Klicke mit der rechten Maustaste auf das UserForm und wähle "Code anzeigen".
    • Füge folgenden VBA-Code ein:
    Private Sub TextBox1_Change()
       On Error Resume Next
       TextBox3.Value = CDbl(TextBox1.Value) * CDbl(TextBox2.Value)
    End Sub
    
    Private Sub TextBox2_Change()
       On Error Resume Next
       TextBox3.Value = CDbl(TextBox1.Value) * CDbl(TextBox2.Value)
    End Sub
  3. Testen:

    • Gebe Zahlen in TextBox1 und TextBox2 ein. Das Ergebnis der Multiplikation sollte in TextBox3 angezeigt werden.

Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler bei leerer Textbox

    • Lösung: Verwende On Error Resume Next, um Fehler bei leeren Eingaben zu ignorieren. Dies wurde bereits im obigen Code implementiert.
  • Problem: Text wird in die Textbox eingegeben

    • Lösung: Du kannst sicherstellen, dass nur Zahlen eingegeben werden, indem du das KeyPress-Ereignis der Textbox nutzt:
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
           KeyAscii = 0
       End If
    End Sub

Alternative Methoden

Eine Alternative zur Verwendung von Textboxen ist die Verwendung von Labels zur Anzeige der Ergebnisse. Dies kann die Benutzererfahrung verbessern, da Labels keine Texteingaben akzeptieren und somit weniger Fehler auftreten können.

Private Sub TextBox1_Change()
    On Error Resume Next
    Label1.Caption = CDbl(TextBox1.Value) * CDbl(TextBox2.Value)
End Sub

Private Sub TextBox2_Change()
    On Error Resume Next
    Label1.Caption = CDbl(TextBox1.Value) * CDbl(TextBox2.Value)
End Sub

Praktische Beispiele

Nehmen wir an, du hast in TextBox1 den Wert 5 und in TextBox2 den Wert 4 eingegeben. TextBox3 (oder ein Label) sollte dann den Wert 20 anzeigen, nachdem du das Feld verlassen hast oder weitere Änderungen vornimmst.


Tipps für Profis

  • Verwendung von CDbl: Die Funktion CDbl wandelt Textwerte in Gleitkommazahlen um. Dies ist besonders nützlich, wenn du sicherstellen möchtest, dass die Berechnungen korrekt durchgeführt werden, auch wenn der Benutzer eine Zahl als Text eingibt.

  • Fehlerbehandlung: Implementiere umfassende Fehlerbehandlungen, um sicherzustellen, dass dein Code robust ist. Beispielsweise kann die Überprüfung mit IsNumeric nützlich sein, bevor du Berechnungen durchführst.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen in die Textboxen eingegeben werden?
Du kannst das KeyPress-Ereignis verwenden, um nur numerische Eingaben zuzulassen. Siehe das Beispiel im Abschnitt "Häufige Fehler und Lösungen".

2. Was bedeutet CDbl?
CDbl ist eine Umwandlungsfunktion, die einen Textwert in einen Datentyp für Fließkommazahlen umwandelt. Dies ist wichtig, um sicherzustellen, dass mathematische Berechnungen korrekt durchgeführt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige