Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1108to1112
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 aus Textboxes, wenn Checkbox aktiv
Wolfgang
Hallo,
ich hatte mir gedacht, dass nachstehender Code funktionieren müsste. Macht er aber nicht; er zeigt mir zwar die einzelnen Summen in Textbox10 an, aber addiert sie nicht zu einer Gesamtsumme. Was mache ich verkehrt? - Ich würde also gerne erreichen, dass,sofern die jeweilige CheckBox aktiviert ist, die Summe(n) addiert wird und das Gesamtergebnis in Textbox10 angezeigt wird. Danke schon jetzt wieder für die Rückmeldungen.
Herzliche Grüße
Wolfgang
Private Sub CommandButton9_Click()
OptionButton2.Value = True
If CheckBox1.Value = True Then
TextBox10.Value = TextBox26.Value
If CheckBox1.Value And CheckBox2.Value = True Then
TextBox10.Value = TextBox26.Value + TextBox29.Value
If CheckBox1.Value And CheckBox2.Value And CheckBox3.Value = True Then
TextBox10.Value = TextBox26.Value + TextBox29.Value + TextBox32.Value
If CheckBox1.Value And CheckBox2.Value And CheckBox3.Value And CheckBox4.Value = True Then
TextBox10.Value = TextBox26.Value + TextBox29.Value + TextBox32.Value + TextBox33.Value
End If
End If
End If
End If
End Sub

AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 08:32:39
Josef
Hallo Wolfgang,
TetxBoxes enthalten, wie der Name ja schon sagt, Text. Und Text kann man halt nicht einfach
addieren. Du musst die Texte mit CDbl() in eine Zahl umwandeln.
ich würde es so lösen, allerdings fehlt noch eine Fehlerüberprüfung, wenn eine Textbox leer ist,
oder keinen numerischen Wert enthält.

Private Sub CommandButton9_Click()
  Dim intIndex As Integer, dblSum As Double
  Dim intN() As Variant
  
  intN = Array(26, 29, 32, 33)
  
  For intIndex = 1 To 4
    If Me.Controls("CheckBox" & CStr(intIndex)) Then
      dblSum = dblSum + CDbl(Me.Controls("TextBox" & CStr(intN(intIndex - 1))))
    Else
      Exit For
    End If
  Next
  TextBox10 = dblSum
End Sub

Gruß Sepp

Anzeige
AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 09:00:13
Wolfgang
Hallo Josef,
erneut herzlichen Dank für Deine Rückmeldung. Ich habe den Code "eingebaut" und getestet. Wäre denkbar, dass er nur dann addiert, wenn ich bei der CheckBox1 anfange und dann jeweils die nächste nehmen muss? Aktiviere ich z.B. nur die CheckBox3 und/oder 4, dann tut sich nichts. Es wäre schön, dass ich erreichen könnte, z.B. die Summe von Box3+4 oder nur 3 oder auch nur 2 oder 1+4 etc. in die TextBox10 zu bekommen. Hättest Du da evtl. noch eine Idee? - Danke schon jetzt wieder für Deine Rückmeldung.
Gruß - Wolfgang
AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 09:15:13
Josef
Hallo Wolfgang,
dazu brauchst du nur den Else-Teil aus der If-Abfrage entfernen.
Private Sub CommandButton9_Click()
  Dim intIndex As Integer, dblSum As Double
  Dim intN() As Variant
  
  intN = Array(26, 29, 32, 33)
  
  For intIndex = 1 To 4
    If Me.Controls("CheckBox" & CStr(intIndex)) Then
      dblSum = dblSum + CDbl(Me.Controls("TextBox" & CStr(intN(intIndex - 1))))
    End If
  Next
  TextBox10 = dblSum
End Sub

Gruß Sepp

Anzeige
AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 08:46:44
fcs
Hallo Wolfgang,
Textboxen enthalten, wie der Name sagt, Text und Text addiert Excel nicht.
Leider hat der VBA-Compiler von Excel inzwischen die Unsitte, dass er das "+"-Zeichen nicht nur als mathematische Addition interpretiert sondern bei Texten als Parameter auch als Verkettung von Textzeichen, für das eigenlich der Operator "&" vorbehalten ist.
So werden bei dir die Textboxinhalte ohne Fehlermeldung einfach aneinander gefügt, statt sie zu addieren. Du muss die Textbox-Inhalte in VBA in Zahlen umwandeln und dann addieren.
Schaut dann wie folgt aus, wobei du die If-Konstruktion in deinem Fall etwas vereinfachen kannst. Die Wertumwandlung wird hier in einer kleinen Function realisiert, die für jede Textbox aufgerufen wird.
Gruß
Franz
Private Sub CommandButton9_Click()
Dim Summe As Double
OptionButton2.Value = True
If CheckBox1.Value = True Then
Summe = fncWert(TextBox26.Value)
If CheckBox2.Value = True Then
Summe = Summe + fncWert(TextBox29.Value)
If CheckBox3.Value = True Then
Summe = Summe + fncWert(TextBox32.Value)
If CheckBox4.Value = True Then
Summe = Summe + fncWert(TextBox33.Value)
End If
End If
End If
TextBox10.Value = Format(Summe, "#,##0.00")
'    TextBox10.Value = Summe
End If
End Sub
Function fncWert(sText As String) As Double
If sText = "" Then
fncWert = 0
Else
If IsNumeric(sText) Then
fncWert = CDbl(sText)
End If
End If
End Function

Anzeige
AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 09:15:08
Wolfgang
Hallo Franz,
Danke für Deine Rückmeldung. Ich hatte wohl, während du Deinen Beitrag upgeloadet hast, den Beitrag an Josef geschrieben. In beiden Codes taucht der Knackpunkt auf, dass ich bei CheckBox1 anfangen muss und dann bis CheckBox4 gehen muss. Wäre denkbar, z.B. nur 3+4 oder 2+3 oder auch nur CheckBox2 etc. zu berücksichtigen, um dann die Summe in TextBox10 zu erhalten? - Danke schon jetzt wieder für Deine Rückmeldung.
Gruß - Wolfgang
AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 09:27:22
fcs
Hallo Wolfgang,
mit folgender Anpassung der Hauptptozedur kannst du eine beliebige Kombination der Werte Summieren.
Bei sher vieln Textboxen ist aber Josefs Lösung vorzuziehen, wobei du meine Function dort ja einfach einbauen kannst.
Gruß
Franz
Private Sub CommandButton9_Click()
Dim Summe As Double
OptionButton2.Value = True
If CheckBox1.Value = True Then Summe = Summe + fncWert(TextBox26.Value)
If CheckBox2.Value = True Then Summe = Summe + fncWert(TextBox29.Value)
If CheckBox3.Value = True Then Summe = Summe + fncWert(TextBox32.Value)
If CheckBox4.Value = True Then Summe = Summe + fncWert(TextBox33.Value)
TextBox10.Value = Format(Summe, "#,##0.00")
TextBox10.Value = Summe
End Sub

Anzeige
AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 10:04:31
Wolfgang
Hallo Franz,
erneut herzlichen Dank für Deine Rückmeldung und Ausarbeitungen; Du hast mich neugierig gemacht, so dass ich versucht habe, den Code von Josef mit Deiner Funktion zu kombinieren. Könntest Du mir da einen Tipp geben, wo ich da ansetzen kann, da ich bei den bisherigen Versuchen fortlaufend Fehlermeldungen erhalte. - Danke schon jetzt wieder für Deine Rückmeldung.
Gruß - Wolfgang
AW: addieren aus Textboxes, wenn Checkbox aktiv
17.10.2009 10:18:48
Josef
Hallo Wolfgang,
na ganz einfach so.
Private Sub CommandButton9_Click()
  Dim intIndex As Integer, dblSum As Double
  Dim intN() As Variant
  
  intN = Array(26, 29, 32, 33)
  
  For intIndex = 1 To 4
    If Me.Controls("CheckBox" & CStr(intIndex)) Then
      dblSum = dblSum + fncWert(Me.Controls("TextBox" & CStr(intN(intIndex - 1))))
    End If
  Next
  TextBox10 = dblSum
End Sub

Function fncWert(sText As String) As Double
  If sText = "" Then
    fncWert = 0
  Else
    If IsNumeric(sText) Then
      fncWert = CDbl(sText)
    End If
  End If
End Function

Gruß Sepp

Anzeige
wobei man die Funktion noch kürzen kann
17.10.2009 10:24:29
Josef
Hallo nochmal,
die Funktion lässt sich auf's wesentliche reduzieren.
Function fncWert(sText As String) As Double
  If IsNumeric(sText) Then fncWert = CDbl(sText)
End Function

Gruß Sepp

Anzeige
Danke Josef und Franz !!
17.10.2009 10:44:27
Wolfgang
Hallo Josef und Franz,
zunächst recht herzlichen Dank für Eure Geduld mit mir und für Eure vielfältigen Rückantworten sowie Ausarbeitungen. Ich habe mich, so wie Du schon vorgeschlagen hattest, Franz, für die Mischung beider Codes/Beiträge entschieden. Die Funktion so einzusetzen, wie es sich nun darstellt, hatte ich auch versucht, aber irgendwie immer noch einen "Bock" 'drin. Ich freue mich sehr über Eure Beiträge und kann mich an dieser Stelle nur immer wiederholen, um festzustellen, wie qualitativ hoch und schnell die Hilfestellung/Unterstüzung in diesem Forum ist. Nochmals recht herzlichen Dank und ein schönes Wochenende noch!
Gruß - Wolfgang
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige