Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1000to1004
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
Addieren von Textboxen - Fehlermeldung
13.08.2008 23:47:20
Textboxen
Hallo nochmals
ich mochte mit folgender Zeile Textboxen addieren:

Private Sub TXT_ZEIT3_Change()
TXT_ERG = CDbl(TXT_ZEIT1.Value) + CDbl(TXT_ZEIT2.Value) + CDbl(TXT_ZEIT3.Value)
End Sub


Funzt...
Allerdings wenn ich jetzt in txt_Zeit1 oder txt_Zeit2 die Zahl lösche um sie zu verbessern bekomme ich eine Fehlermeldung: Typen unverträglich.
Was muss ich tun das ich diese Fehlermeldung nicht erhalte?
Gruß Gerhard

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Addieren von Textboxen - Fehlermeldung
13.08.2008 23:58:12
Textboxen
Hallo,
eine Möglichkeit.

TXT_ERG = CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), 0, TXT_ZEIT1.Value)) + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), 0, TXT_ZEIT2.Value)) + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), 0, TXT_ZEIT3.Value))


Gruß Tino

Korrektur !!!
14.08.2008 00:00:00
Tino
Hallo,
sorry Fehler!

TXT_ERG = CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), TXT_ZEIT1.Value, 0)) + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), TXT_ZEIT2.Value, 0)) + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), TXT_ZEIT3.Value, 0))


Gruß Tino

Anzeige
Addieren funktioniert, jetzt Prob. mit Runden
14.08.2008 06:03:00
Gerhard
Moin Tino
thx für die Hilfe...
so habe ich es nun eingebaut:

Private Sub TXT_ZEIT3_Change()
TXT_ERG = CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), TXT_ZEIT1.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), TXT_ZEIT2.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), TXT_ZEIT3.Value, 0)) / 100
End Sub



Private Sub TXT_ZEIT2_Change()
TXT_ERG = CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), TXT_ZEIT1.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), TXT_ZEIT2.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), TXT_ZEIT3.Value, 0)) / 100
End Sub



Private Sub TXT_ZEIT1_Change()
TXT_ERG = CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), TXT_ZEIT1.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), TXT_ZEIT2.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), TXT_ZEIT3.Value, 0)) / 100
End Sub


Ich musste noch die Eingabe der Ganzzahlen (es sind ausschliesslich nur positive Ganzzahlen) durch 100 teilen.
Soweit so gut, funzt alles. Wo ich mir gerade die Zähne ausbeisse ist folgendes:
Wie schaffe ich es das das Ergebniss in Textbox TXT_ERG auf eine (!!!) Kommastelle gerundet und angezeigt wird?
Hat da jemand nen Tipp für mich?
LG

Anzeige
AW: Runden funktioniert auch
14.08.2008 07:22:59
Erich
Hallo Gerhard,
das Addieren (und Runden) musst du nicht in drei Prozeduren schreiben.
Probier mal:

Private Sub TXT_ZEIT3_Change()
TextAdd
End Sub
Private Sub TXT_ZEIT2_Change()
TextAdd
End Sub
Private Sub TXT_ZEIT1_Change()
TextAdd
End Sub
Private Sub TextAdd()
TXT_ERG = Format( _
CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), TXT_ZEIT1.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), TXT_ZEIT2.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), TXT_ZEIT3.Value, 0)) / 100, "0.0")
End Sub
'oder
Private Sub TextAdd2()
TXT_ERG = Application.Round( _
CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), TXT_ZEIT1.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), TXT_ZEIT2.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), TXT_ZEIT3.Value, 0)) / 100, 1)
End Sub

Die "Format"-Rundung liegt etwas näher, da ja in die Textbox ohnehin Text geschrieben wird.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Welches Ereignis?
14.08.2008 07:43:33
Erich
Hi Gerhard,
noch eine Frage:
Soll das Ergebnis immer schon bei Eingabe eines einzelnen Zeichens angezeigt werden?
Dann ist das Change-Ereignis ok.
Oder reicht es aus, wenn die Summe erst dann erscheint, wenn ein Textfeld "fertig gefüllt" ist
und verlassen wird?
Dafür mal drei Möglichkeiten:

Private Sub TXT_ZEIT1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextAdd
End Sub
Private Sub TXT_ZEIT2_AfterUpdate()
TextAdd
End Sub
Private Sub TXT_ZEIT3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextAdd
End Sub
Private Sub TextAdd()
TXT_ERG = Format( _
CDbl(IIf(IsNumeric(TXT_ZEIT1.Value), TXT_ZEIT1.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT2.Value), TXT_ZEIT2.Value, 0)) / 100 + _
CDbl(IIf(IsNumeric(TXT_ZEIT3.Value), TXT_ZEIT3.Value, 0)) / 100, "0.0")
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
DANKE!!!
14.08.2008 21:08:57
Gerhard
Servus!!!
Vielen vielen Dank!!!!
@Erich

Soll das Ergebnis immer schon bei Eingabe eines einzelnen Zeichens angezeigt werden?
Dann ist das Change-Ereignis ok.


Jepp so sollte es sein und deswegen habe ich mich für den ersten Vorschlag entschieden.
Die anderen habe ich sicherheitshalber ma kopiert... ma kucken was mir wieder fürn Blödsinn einfällt, wo ich bestimmt dann darauf zurückgreifen kann...
Greetz...

AW: Addieren von Textboxen - Fehlermeldung
14.08.2008 01:04:00
Textboxen
Hi
alternative einfachere Variante, funktioniert aber nur mit der Einschränkung, daß bei Negativen Werten daß "-" nachgestellt werden muss (dh "100-" statt "-100"). und wenn du fälschlicher weise auf ne Buchstabentaste drückst, gibts auch nen Fehler. (von daher ist Tinos Variante schon die bessere)
TXT_ERG = CDbl("0" & TXT_ZEIT1.Value) + CDbl("0" & TXT_ZEIT2.Value) + CDbl("0" & TXT_ZEIT3.Value)
Gruß, Daniel
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