Excel VBA Summenformel richtig in Zelle einbinden

tobias_2

Cadet 4th Year
Registriert
Nov. 2009
Beiträge
84
Guten Morgen,

ich versuche z.Z. eine Summenformel in einer Zelle einzubinden.

Das Ganze sieht folgendermaßen aus. Ich habe eine Userform, die sich nach bestimmten Kriterien bestimmt oft neu öffnet, wenn man einen CommandButton klickt. Über eine TextBox werden Zahlen (Typ Double) eingegeben und beim Klicken des Button sollen diese einer Zelle "hinzugefügt" werden. Also nicht durch VBA Code aufaddiert.

Bsp. in Zelle A1 steht die Zahl "250".
Im ersten Schritt soll geprüft werden, ob das erste Zeichen dieser Zelle ein Gleichheitszeichen ist und wenn nicht, soll an die erste Stelle ein "=" eingefügt werden.
Im zweiten Schritt soll der in der TextBox eingegebene Wert beim klicken des Buttons zum bestehenden Inhalt mit einem "+" davor angehängt werden.

Code:
If Left(Cells(1, 1).Value, 1) <> "'=" Then
Cells(1, 1).FormulaLocal = "'=" & Cells(1, 1)
MsgBox "hi"  'zum Testen wie oft in diese If-Anweisung gesprungen wird => ploppt jedes Mal auf?!?!
End If
Cells(1, 1).FormulaLocal = Cells(1, 1).FormulaLocal & "+" & CDbl(TextBox1.Value)

Wenn ich jetzt in A1 als erstes z.B. eine "250" stehen habe und dann beim 1. Aufruf der Userform eine weitere Zahl hinzufüge, z.B. "20", funktioniert das noch.
Der Zelleninhalt sieht dann so aus: "=250+20"

Wenn ich jetzt aber beim 2. Aufruf der Userform wieder eine Zahl hinzufüge z.B. "50", addiert er aber die Zahlen oben schon..
sieht dann so aus: "=270 + 50"

soll aber so aussehen: "=250+20+50"

Ich vermute, es wird der Inhalt "=250+20" iwo wieder in einen Wert umgewandelt.
Ich brauche das ganze auch iwie kompakter und übersichtlicher..

Hoffe mir kann da jemand auf die Schnelle helfen.
 
Sub Schaltfläche1_KlickenSieAuf()
Dim x As Double
x = 22
If Cells(1, 1).Formula = "" Then
Cells(1, 1).Formula = "=" & x
Else
Cells(1, 1).Formula = Cells(1, 1).Formula & " + " & x
End If
End Sub
end if

Fehlen sämtlichen Validierungen natürlich + Fehlerbehandlung, ansonsten empfehle ich Dir Tutorials oder ein gutes VBA-Buch, die Grundlagen scheinen noch nicht ganz zu sitzen ;)
 
Fehlen sämtlichen Validierungen natürlich + Fehlerbehandlung, ansonsten empfehle ich Dir Tutorials oder ein gutes VBA-Buch, die Grundlagen scheinen noch nicht ganz zu sitzen
Hab die Validierungen extra weg gelassen, obwohl ich weiss, dass es nicht optimal ist, besonders weil ich mit vielen Variablen arbeite.

Fehlerbehandlung muss hier keine rein. Habe zwar geschrieben, dass ich die Werte manuell eingebe, aber nur zur Vereinfachung der Problemstellung, die sehr sehr komplex ist und die ich auch nicht preisgeben möchte.
Die Werte werden eig übertragen und können nur Double Werte sein. (TextBox ist auch gelockt)

Hab das Ganze auch schon in einer Funktion (da ich diese öfter abfragen muss) umgesetzt:
Code:
Function fBehebung(x)

    If Left(Cells(x, 6).FormulaLocal, 1) <> "=" Then
        Cells(x, 6).FormulaLocal = "'=" & Cells(x, 6)
'       MsgBox "test"
    End If
    Cells(x, 6).FormulaLocal = Cells(x, 6).FormulaLocal & "+" & CDbl(TextBox2.Value)
    
End Function

Aber warum kann ich das Cells(x, 6).FormulaLocal nicht in einer Variablen speichern?
Hatte es versucht aber hat zu Fehlern geführt.
 
Zurück
Oben