Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


leere Textboxen abfangen - wegen addieren
#1
Hallo @all
Rechnen oder addieren will nicht mit leeren Textboxen klappen
Code:
Private Sub CommandButton1_Click()
txt_summe = CDbl(txt_wert_01) + CDbl(txt_wert_02) + CDbl(txt_wert_03) + ......... bis zu 20 Textboxen
End Sub

Bin mal wieder am tüfteln (VBA-Anfänger)
Können zwecks berechnen der Inhalte der Textboxen, leere nicht durch eine Anweisung z.b. wenn - dann übersprungen werden.

Gedankengang:
Textbox1 wurde befüllt (7) Sprung zu Textbox2, diese hat den Wert (15) bekommen, kann jetzt nicht schon in der Textbox Summe der addierte Wert angezeigt werden.
Ist allerdings eine Textbox nicht befüllt sollte diese nicht mit in die Berechnung einfließen
If - then oder irgend eine Function oder IfNumeric oder mit UserForm_Initialize oder oder .... ???

Wäre echt hilfreich hierzu Hilfe von euch zu erfahren.
?mage
to top
#2
Hallo Frank,

versuche es mal so

Code:
Private Sub CommandButton1_Click()
   Dim lngBox As Long
   Dim dbltxtSumme As Double
  
   For lngBox = 1 To 4
      If IsNumeric(Controls("txt_wert_" & Format(lngBox, "00"))) Then dbltxtSumme = dbltxtSumme + CDbl(Controls("txt_wert_" & Format(lngBox, "00")))
  
   Next lngBox


End Sub
Gruß Stefan
Win 7 / Office 2007
to top
#3
Hallo Frank,

z.B. so:

txt_summe = Application.Sum(0 & txt_wert_01, 0 & txt_wert_02, 0 & txt_wert_03)

Gruß Uwe
to top
#4
Hallo Stefan & Uwe

@Stefan
bekomme deinen Code nicht ans laufen, 'dbltxtSumme' ist das der neuere Name für die Textbox txt_Summe
Code:
For lngBox = 1 To 4
anstelle 4 = 20, muss hier ebenfalls noch modifiziert werden, da 20 Textboxen ??

@Uwe
danke für den Einzeiler

mfg
?mage
to top
#5
Hallo Frank,

(05.07.2014, 15:40)WergibtmirRat schrieb: @Stefan
bekomme deinen Code nicht ans laufen, 'dbltxtSumme' ist das der neuere Name für die Textbox txt_Summe
Code:
For lngBox = 1 To 4
anstelle 4 = 20, muss hier ebenfalls noch modifiziert werden, da 20 Textboxen ??

ja klar muss das modifiziert werden, ich hatte ja nur ein Beispiel mit 4 Textboxen aufgebaut (war mir doch zu beschwerlich 20 Textboxen einzufügen und den passenden Namen zu geben)

und ich habe es jetzt anders gelöst mit einer Variablen, die am Ende den Inhalt an eine Textbox übergibt.

Code:
Private Sub CommandButton1_Click()
   Dim lngBox As Long
   Dim dbltxtSumme As Double
  
   For lngBox = 1 To 4
      If IsNumeric(Controls("txt_wert_" & Format(lngBox, "00"))) Then dbltxtSumme = dbltxtSumme + CDbl(Controls("txt_wert_" & Format(lngBox, "00")))
   Next lngBox

End Sub
Gruß Stefan
Win 7 / Office 2007
to top
#6
(05.07.2014, 15:47)Steffl schrieb: ...zu beschwerlich 20 Textboxen einzufügen...
Danke Stefan, werd es gleich ummodeln und einpflegen

mfg
?mage
to top
#7
(05.07.2014, 15:47)Steffl schrieb: ...mit einer Variablen, die am Ende den Inhalt an eine Textbox übergibt...
Hallo Helfende,
anbei die Datei mit beiden Wegen, ich komm da nicht mit klar bzw. es bleibt mir im Verborgenen wo was zu ändern ist

.xls   Anklicken zur veranschaulichung.xls (Größe: 52,5 KB / Downloads: 13)

nehme nach wie vor jegliche Hilfe an, ich will die Code verstehen lernen.
mfg
?mage
to top
#8
Hallo Frank,

wenn Du die TextBoxen anders benennst als vorher hier im Forum, kann es nicht gehen.

in UserForm2 passt es mit txt_wert_01 usw.,
in UserForm1 heißen sie txt_wert_1 usw. ! ;-)

Gruß Uwe
to top
#9
Hallo Frank,

wie bereits von Uwe angesprochen. Die Namen müssen schon passen. Außerdem hattest Du eine Textbox so benannt, wie ich eigentlich eine Variable bezeichnet habe. Das beißt sich dann auch. Ich habe nun im Code die Bezeichnungen der Textboxen angepasst, die Variable umbenannt und lasse am Ende den Variableninhalt in die Textbox eintragen.

Code:
Private Sub CommandButton1_Click()
   Dim lngBox As Long
   'das ist eine Variable!
   Dim dbltxtEintragSumme As Double
   For lngBox = 1 To 4
      If IsNumeric(Controls("txt_wert_" & lngBox)) Then dbltxtEintragSumme = dbltxtEintragSumme + CDbl(Controls("txt_wert_" & lngBox))
   Next lngBox
   dbltxtSumme = dbltxtEintragSumme
End Sub
Gruß Stefan
Win 7 / Office 2007
to top
#10
Hallo Frank,

wenn Du anstelle von CDbl mit Val arbeitest, dürfen in den TextBoxes sogar Text stehen, denn Val macht dann Null-Werte daraus.

PHP-Code:
Option Explicit

Private Sub Label1_Click()

Dim iIndx    As Integer
Dim dSumme   
As Double

   
For iIndx 1 To 20
      dSumme 
dSumme Val(Replace(Controls("txt_wert_" Format(iIndx"00")).Value",""."))
   
Next iIndx
   
   Label1
.Caption Format(dSumme"#,##0.00")

End Sub 

Gruß Peter
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Leere Auswahlzellen in Datenüberprüfung soky001 5 58 02.12.2016, 23:45
Letzter Beitrag: soky001
  summen wenn leere zelle entdeckt ist evera 7 70 30.11.2016, 15:59
Letzter Beitrag: BoskoBiati
  [VBA] Einfärben von Textboxen über Schleife Rabe 4 78 25.11.2016, 22:04
Letzter Beitrag: schauan
  Leere Zeile nach gleicher Nummernfolge kosmoritz 5 74 10.11.2016, 16:41
Letzter Beitrag: kosmoritz
  Zellen prüfen und dann addieren h76469 1 52 05.11.2016, 08:53
Letzter Beitrag: WillWissen
  Jede n-te Zelle Wert um 1 addieren McAnimate 5 90 24.10.2016, 09:37
Letzter Beitrag: WillWissen
  Zahlen in der selben Zelle addieren Rudi12345 13 322 08.10.2016, 10:46
Letzter Beitrag: XOR LX
  Letzte Leere Zelle Auswählen und Wert eintragen (VBA) e2Ki 7 341 14.09.2016, 09:49
Letzter Beitrag: e2Ki
Sad leere Zellen zählen von der letzten Befüllten Zelle aus loga 36 1.227 13.09.2016, 15:39
Letzter Beitrag: schauan
  Knobelaufgabe wegen Nulldivisonsfehler dr.ananas 2 138 25.08.2016, 14:55
Letzter Beitrag: BoskoBiati

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste