Registriert seit: 08.02.2017
Version(en): 2016
04.07.2023, 08:27
(Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2023, 08:30 von dertommy.)
Hallo! Ich habe folgendes Problem, dass ich in 2 Inputboxen jeweils einen Wert eingebe. Nun möchte ich aber, dass diese 2 Werte addiert werden, damit ich damit weiter arbeiten kann. Leider funktioniert das aber nicht. Wenn ich z.B. bei der 1. Inputbox 5 eingeben und bei der 2. auch 5 eingebe, wird dann nachher in eine Zelle 55 geschrieben. Ich will aber, dass er die Summe aus den beiden macht, somit sollte 10 in die bestimmte Zelle geschrieben werden. Anbei mein aktueller Code. Ich hoffe, dass mir jemand helfen kann. Code: Dim wert, wert1, wert2 As Variant
wert1 = InputBox("Bitte neuen 1. Wert eingeben: " & String(2, vbNewLine) & _ "alter Wert: € " & alterWert & " vom " & alterWertDatum) wert2 = InputBox("Bitte neuen 2. Wert eingeben: " & String(2, vbNewLine) & _ "alter Wert: € " & alterWert & " vom " & alterWertDatum)
wert = wert1 + wert2
.Range("E3").Value = CDbl(wert)
LG Thomas
Excel Version 2016
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
in VBA ist das Zeichen für das Concatinieren von Strings das "&", aber es geht auch das "+" wie in anderen Sprachen. Dein Code verbindet damit zwei Strings, die nachher nicht mehr automatisch in Zahlen gewandelt werden können.
Es sollte helfen ein "Val(input....) zu schreiben.
mfg
PS Der Ansatz erscheint etwas merkwürdig
Registriert seit: 08.02.2017
Version(en): 2016
Hallo!
Danke für deine rasche Antwort. Leider sagt mir das aber nichts. Wie müsste ich den Code nun umändern?
Danke und
LG Thomas
Excel Version 2016
Registriert seit: 11.12.2022
Version(en): 365 / 2021
Moin, deine Werte werden als String genommen. probier mal
Dim wert, wert1, wert2 As Long
Gruß Dirk --------------- - Wenn du nicht weißt, wo du hin willst, ist es egal, welchen Weg du einschlägst.
Registriert seit: 08.02.2017
Version(en): 2016
04.07.2023, 08:53
(Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2023, 09:20 von dertommy.)
Hallo DIZA! Danke sehr, du hast mir sehr geholfen. Es funktioniert nun. LG Thomas
Hallo! Leider muss ich nun im Praxistest mitteilen, dass es doch nicht ganz korrekt arbeitet. Wenn ich die Werte 5,01 und 5,01 eingebe, wird dann als Ergebnis 10,01 in die Zelle E3 geschrieben, statt 10,02. Ich hoffe, dass mir nochmals wer helfen kann. Anbei nochmals mein aktueller Code: Code: Dim wert, wert1, wert2 As Long
Do wert1 = InputBox("Bitte neuen 1. Wert eingeben: " & String(2, vbNewLine) & _ "alter Wert: € " & alterWert & " vom " & alterWertDatum) If wert1 = "" Then Exit Sub wert2 = InputBox("Bitte neuen 2. Wert eingeben: " & String(2, vbNewLine) & _ "alter Wert: € " & alterWert & " vom " & alterWertDatum) wert = wert1 + wert2 If CStr(wert) > CStr(Range("E3")) * 5 Then ' MsgBox ("Dein von dir eingegebener Wert ist um " & Format((wert / Range("E3")) * 100, "#,##0") & " % größer als der alte Wert.") End If Loop Until (wert / Range("E3")) * 100 < 500 .Range("E3").Value = CDbl(wert)
LG Thomas
Nachtrag: Ich bin gerade draufgekommen, dass er mir beim 2. Wert die Kommazahlen nicht nimmt, beim 1. Wert aber schon.
Excel Version 2016
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Thomas,
wert2 ist ja auch als Long deklariert (also ohne Nachkomma), während wert1 als Variant (nicht) deklariert ist, was dann alles annehmen kann.
Gruß, Uwe
Registriert seit: 08.02.2017
Version(en): 2016
Hallo Kuwer!
Das ist nicht korrekt, es ist alles als Long deklariert, siehe oberer Beitrag.
Excel Version 2016
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo Tommy, Zitat:Dim wert, wert1, wert2 As Long nur Wert2 ist long, alles andere Variant.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Registriert seit: 08.02.2017
Version(en): 2016
04.07.2023, 09:49
(Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2023, 10:11 von dertommy.)
Hallo!
Danke für den Hinweis. Ich dachte, dass alle in der Zeile long sind, weil sie ja mit "," getrennt sind. Was müsste ich nun tun, dass es nun trotzdem funktioniert?
Ich will einfach, dass ich beim 1. u. 2. Wert jeweils eine Zahl mit Kommastellen eingeben kann und das er dann auch damit richtig eine Summe von den beiden mit Kommastellen bilden kann.
Excel Version 2016
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Thomas, Du hattest es doch schon drin in Deinem Code: Code: Dim wert1, wert2
wert1 = InputBox("Bitte neuen 1. Wert eingeben: " & String(2, vbNewLine) & _ "alter Wert: € " & alterWert & " vom " & alterWertDatum) wert2 = InputBox("Bitte neuen 2. Wert eingeben: " & String(2, vbNewLine) & _ "alter Wert: € " & alterWert & " vom " & alterWertDatum) If IsNumeric(wert1) And IsNumeric(wert2) Then .Range("E3").Value = CDbl(wert1) + CDbl(wert2) End If
Gruß, Uwe
|