Textbox in Excel

Registriert
Feb. 2019
Beiträge
6
Hallo,

ich will in Excel ein Textfeld einfügen. Wenn in das Textfeld eine Zahl eingegeben wird, dann soll diese Zahl in die Zelle J20 übernommen werden. Wenn allerdings keine Zahl in der TextBox steht, dann soll in der Zelle J20 die Summe von Zelle J18 und J19 ausgegeben werden. So sieht der erste Teil des Codes aus:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
Range("J20") = TextBox1.Text
Else
Sheets("Kalkulation").Range ("J20") =
End If
End Sub

Leider weiß ich nicht wie ich den Code vervollständige.
Wäre nett wenn ihr den Code ergänzen könntet oder mir einen anderen Vorschlag zukommen lasst.
 
Else
Sheets("Kalkulation").Range ("J20") =
End If
End Sub

Da fehlt die Bedingung / Funktion für die Summe J18 und J19. Also SUM(Range, Cells, ....)
Ich kann aber vbKeyReturn gerade nicht ganz einordnen.

/Edit

resultiert aus ReturnInteger, alles klar. Wie gesagt,
Code:
Sheets("Kalkulation").Range ("J20") =

Da fehlt die Summenfunktion hinter dem =

Im Prinzip sagt dein Code aktuell:

Wenn Textbox = Zahl
Dann J20 = Textbox
Sonst J20 =
Ende
 
Ich hab den Code jetzt fertig

Sheets("Kalkulation").Range("J20").Value = "=Sum(J18,J19)"

So funktioniert es danke für die Hilfe
 
  • Gefällt mir
Reaktionen: Sun_set_1
@Matin.123456789

Eleganter und später praktisch:

Definiere direkt am Anfang die Sum Function als Int oder String. Also bspw

Code:
Dim Ergebnis as INT
Ergebnis = Sum(J18,J19)

Code:
Else
Sheets("Kalkulation").Range("J20").Value = Ergebnis

Dann musst Du bei etwaigen Anpassungen später mal immer nur oben den INT Ergebnis = Sum(...) anpassen und es wird entsprechend in allen nachfolgenden Operationen automatisch übernommen und mit der veränderten Summe gerechnet.

Sonst musst Du immer zu Fuß bei jeder Änderung an jede einzelne Operation/Berechnung.
Sollte sich der Code eventuell mal erweitern, ist es somit immer super hilfreich direkt am Anfang so vorzugehen.
Wenn du schon etwas Programmiererfahrung hast, schau dir mal kurz das Instanzieren der Datentypen und Objekte in VBA an. Es ist wirklich super einfach gelöst, da du nichtmal Tags brauchst, schlicht Dim As. Und naturgemäß sehr praktisch.


lg
 
Zuletzt bearbeitet:
Zurück
Oben