Wie summiert man TextBoxen in VBA?

Ich habe 4 TextBoxen die ich summieren muss.
TextBox21, TextBox30, TextBox39, TextBox48
Ich habe schon Kursanzahlen summiert und zwar so:
Dim Kursanzahl1 As Integer
Dim Kursanzahl2 As Integer
Dim Kursanzahl3 As Integer
Dim Kursanzahl4 As Integer
Dim Kursanzahl5 As Integer
Dim Kursanzahl6 As Integer
Dim Kursanzahl7 As Integer
Dim Kursanzahl8 As Integer
Dim Kursanzahl9 As Integer

Kursanzahl1 = TextBox11
Kursanzahl2 = TextBox12
Kursanzahl3 = TextBox13
Kursanzahl4 = TextBox14
Kursanzahl5 = TextBox15
Kursanzahl6 = TextBox16
Kursanzahl7 = TextBox17
Kursanzahl8 = TextBox18
Kursanzahl9 = TextBox19

With UserForm1

TextBox65 = Kursanzahl1 + Kursanzahl2 + Kursanzahl3 + Kursanzahl4 + Kursanzahl5 + Kursanzahl6 + Kursanzahl7 + Kursanzahl8 + Kursanzahl9

Bei den TextBoxen wo es nich klappt s. oben sind es nicht Kursanzahlen, sondern 12.1 , 12.2 usw.
PS.: das soll ein Abi-rechner werden.
Danke jetzt schon mal.
Markus1992

Hi,

Du mußt die Objekte qualifizieren, d.h. benennen, was Du haben willst. VBA nimmt bei uneindeutigem Code einfach einen Standardwert oder konvertiert Variablen nach Gusto.
Ohne Deinen Code genauer gelesen zu haben: das Problem liegt vermutlich an

Kurszahl=Textbox1 .Value

M.

Hallo Markus,

Ich habe schon Kursanzahlen summiert und zwar so:
With UserForm1

was soll das with bringen wenn du es in dem Codeschnipsel nicht benutzt?

Und so wie ich das sehe beinhaltet eine Textbox Text. Wenn du diesen Text in eine Integer-variable einlesen kannst so hat Excel schon für dich mitgedacht.
Okay, scheinbar klappt das erstaunlicherweise.

Jetzt steht wohl in einer Textbox nicht 12 sondern 12.1 wobei ich da 12,1 für angebrachter halte.

Schau mal in der Hilfe nach CDbl(…)
oder gar nach CDbl(Val(…))

Gruß
Reinhard

Hallo,

Bei den TextBoxen wo es nich klappt s. oben sind es nicht
Kursanzahlen, sondern 12.1 , 12.2 usw.

der Code lässt sich deutlich verkürzen, wenn Du den Textboxen die zusammengehören entsprechende Namen gibst. Wenn keine anderen Textboxen da sind, musst Du die Namen nicht ändern, dann geht das so:

Option Explicit

Private Sub CommandButton1\_Click()
 Dim su As Double
 Dim tb As Control
 su = 0
 For Each tb In Me.Controls
 If Left(tb.Name, 7) = "TextBox" Then
 su = su + CDbl(tb.Text)
 End If
 Next
 Label1.Caption = su
End Sub

Statt der Dezimalpunkte musst Du Kommas verwenden, dann klappt das.

Gruß Rainer

Danke an alle die mir eine Antwort auf meine Frage gegeben haben. Kombiniert mit allen Antworten und ein bisschen selber experementiert, habe ich es endlich hinbekommen.
Danke
Markus1992