21.12.2017, 08:23
Hallo!
Ich habe folgendes Problem. Ich gebe in einer Inputbox einen Wert ein. Daraufhin werden dann Werte in bestimmte Zellen geschrieben und mehrere MessageBoxes erscheinen. Wenn ich aber nun bei der Inputbox auf Abbrechen klicke, tut er nichts, weil ich im Code "If Einzahlung = "" Then Exit Sub" hinterlegt habe. Daraufhin dachte ich mir, gebe ich diese Zeile einfach weg. Leider kommt dann bei der Codestelle ".Cells(.Cells(.Rows.Count, 3).End(xlUp).Row + 1, 3).Formula = CDbl(Einzahlung)" folgende Fehlermeldung, wenn ich nun in der Inputbox auf Abbrechen klicke:
Typen unverträglich
Anbei einmal mein ganzer Code:
Ich hoffe, dass mir jemand helfen kann.
LG
Thomas
Ich habe folgendes Problem. Ich gebe in einer Inputbox einen Wert ein. Daraufhin werden dann Werte in bestimmte Zellen geschrieben und mehrere MessageBoxes erscheinen. Wenn ich aber nun bei der Inputbox auf Abbrechen klicke, tut er nichts, weil ich im Code "If Einzahlung = "" Then Exit Sub" hinterlegt habe. Daraufhin dachte ich mir, gebe ich diese Zeile einfach weg. Leider kommt dann bei der Codestelle ".Cells(.Cells(.Rows.Count, 3).End(xlUp).Row + 1, 3).Formula = CDbl(Einzahlung)" folgende Fehlermeldung, wenn ich nun in der Inputbox auf Abbrechen klicke:
Typen unverträglich
Anbei einmal mein ganzer Code:
Code:
Private Sub Worksheet_Activate()
Dim gewinn As Double
Dim prozent As Double
Dim prozentseitAbschluss As Double
Dim wert As Variant
alterWert = Cells(3, 9)
alterGewinn = Cells(8, 3)
GewinnVerlust = Cells(5, 4)
alterProzentseitAbschluss = Cells(7, 3)
alterWertDatum = Cells(3, 4)
alterProzentmitheutigemTag = Cells(6, 3)
alterWertGewinnVerlust = Cells(11, 5)
höchsterGewinn = Cells(8, 10)
höchsterGewinnDatum = Cells(8, 6)
höchsterProzentseitAbschluss = Cells(10, 10)
höchsterProzentseitAbschlussDatum = Cells(9, 9)
höchsterProzent = Cells(9, 10)
höchsterProzentDatum = Cells(8, 9)
Dim sh As Worksheet
Set sh = Sheets("Comgest Growth Greater China") 'hier deinen Tabellennamen anpassen
Dim lr As Integer
Dim i As Integer ' immer alle Variablen deklarieren
Dim fehlendeMonate As Integer ' immmer mit Option explicit arbeiten
Einzahlung = InputBox("Wurde eine neue Einzahlung verbucht? Wenn ja, dann bitte neuen Wert eingeben: ", "Eingabeaufforderung © by Biggi & Tommy")
If Einzahlung = "" Then Exit Sub
With Worksheets("Fidelity Funds Global (Anspar)")
.Cells(.Cells(.Rows.Count, 3).End(xlUp).Row + 1, 1).Formula = Date
.Cells(.Cells(.Rows.Count, 3).End(xlUp).Row + 1, 3).Formula = CDbl(Einzahlung)
gewinn = .Range("E5").Value
prozent = .Range("h5").Value
prozentseitAbschluss = .Range("h6").Value
.Range("d3").Value = Date
DifferenzGewinnkleiner = .Range("M8").Value
GewinnVerlust1 = Cells(5, 4)
höchsterVerlustniedrigsterGewinnWert = .Range("E11")
höchsterVerlustniedrigsterGewinn = .Range("D11")
höchsterVerlustniedrigsterGewinnDatum = .Range("G11")
If gewinn > .Range("e8").Value And prozent > Range("h8").Value Then
.Range("e8").Value = gewinn
.Range("f8").Value = "am " & Date
höchsterGewinn1 = .Range("J8").Value
.Range("L9").Value = gewinn - höchsterGewinn
DifferenzGewinngrößer = .Range("M9").Value
.Range("A1").Value = gewinn - alterGewinn
DifferenzGewinnLetzterGewinn = .Range("B1").Value
.Range("A2").Value = prozent - alterProzentmitheutigemTag
DifferenzProzentLetzterProzent = .Range("B2").Value
.Range("A3").Value = prozentseitAbschluss - alterProzentseitAbschluss
DifferenzProzentseitAbschlussLetzterProzentseitAbschluss = .Range("B3").Value
.Range("A4").Value = prozent - höchsterProzent
DifferenzhöchsterProzentLetzterhöchsterProzent = .Range("B4")
.Range("A5").Value = prozentseitAbschluss - höchsterProzentseitAbschluss
DifferenzhöchsterProzentseitAbschlussLetzterhöchsterProzentseitAbschluss = .Range("B5").Value
alterProzentmitheutigemTag1 = Cells(7, 10)
alterProzentseitAbschluss1 = Cells(6, 10)
MsgBox "Neuer höchster Gewinn von € " & höchsterGewinn1 & ", welcher um € " & DifferenzGewinngrößer & " höher ist, als der alte höchste Gewinn von € " & höchsterGewinn & ", welcher " & höchsterGewinnDatum & " war, bzw. ist er " & DifferenzGewinnLetzterGewinn & " der letzte " & GewinnVerlust & String(1, vbNewLine) & _
"€ " & alterGewinn & ", welcher am " & alterWertDatum & " war.", vbInformation, "Achtung! © by Biggi & Tommy"
.Range("B8").Value = gewinn
.Range("B6").Value = prozent
.Range("B7").Value = prozentseitAbschluss
Else
If gewinn > .Range("e8").Value And prozentseitAbschluss > Range("h9").Value Then
.Range("e8").Value = gewinn
.Range("f8").Value = "am " & Date
höchsterGewinn1 = .Range("J8").Value
.Range("L9").Value = gewinn - höchsterGewinn
DifferenzGewinngrößer = .Range("M9").Value
.Range("A1").Value = gewinn - alterGewinn
DifferenzGewinnLetzterGewinn = .Range("B1").Value
.Range("A2").Value = prozent - alterProzentmitheutigemTag
DifferenzProzentLetzterProzent = .Range("B2").Value
.Range("A3").Value = prozentseitAbschluss - alterProzentseitAbschluss
DifferenzProzentseitAbschlussLetzterProzentseitAbschluss = .Range("B3").Value
.Range("A5").Value = prozentseitAbschluss - höchsterProzentseitAbschluss
DifferenzhöchsterProzentseitAbschlussLetzterhöchsterProzentseitAbschluss = .Range("B5").Value
alterProzentmitheutigemTag1 = Cells(7, 10)
alterProzentseitAbschluss1 = Cells(6, 10)
MsgBox "Neuer höchster Gewinn von € " & höchsterGewinn1 & ", welcher um € " & DifferenzGewinngrößer & " höher ist, als der alte höchste Gewinn von € " & höchsterGewinn & ", welcher " & höchsterGewinnDatum & " war, bzw. ist er " & DifferenzGewinnLetzterGewinn & " der letzte " & GewinnVerlust & String(1, vbNewLine) & _
"€ " & alterGewinn & ", welcher am " & alterWertDatum & " war." & String(1, vbNewLine) & _
"Der derzeitige Prozentsatz beträgt mit heutigem Tag " & alterProzentmitheutigemTag1 & " % " & String(1, vbNewLine) & _
"(" & DifferenzProzentLetzterProzent & " %).", vbInformation, "Achtung! © by Biggi & Tommy"
.Range("B8").Value = gewinn
.Range("B6").Value = prozent
.Range("B7").Value = prozentseitAbschluss
Else
If gewinn > .Range("e8").Value Then
.Range("e8").Value = gewinn
.Range("f8").Value = "am " & Date
höchsterGewinn1 = .Range("J8").Value
.Range("L9").Value = gewinn - höchsterGewinn
DifferenzGewinngrößer = .Range("M9").Value
.Range("A1").Value = gewinn - alterGewinn
DifferenzGewinnLetzterGewinn = .Range("B1").Value
.Range("A2").Value = prozent - alterProzentmitheutigemTag
DifferenzProzentLetzterProzent = .Range("B2").Value
.Range("A3").Value = prozentseitAbschluss - alterProzentseitAbschluss
DifferenzProzentseitAbschlussLetzterProzentseitAbschluss = .Range("B3").Value
alterProzentmitheutigemTag1 = Cells(7, 10)
alterProzentseitAbschluss1 = Cells(6, 10)
MsgBox "Neuer höchster Gewinn von € " & höchsterGewinn1 & ", welcher um € " & DifferenzGewinngrößer & " höher ist, als der alte höchste Gewinn von € " & höchsterGewinn & ", welcher " & höchsterGewinnDatum & " war, bzw. ist er " & DifferenzGewinnLetzterGewinn & " der letzte " & GewinnVerlust & " € " & alterGewinn & ", welcher am " & alterWertDatum & " war." & String(1, vbNewLine) & _
"Der derzeitige Prozentsatz beträgt mit heutigem Tag " & alterProzentmitheutigemTag1 & " % (" & DifferenzProzentLetzterProzent & " %), bzw. " & alterProzentseitAbschluss1 & " % (" & DifferenzProzentseitAbschlussLetzterProzentseitAbschluss & " %) seit Abschluss.", vbInformation, "Achtung! © by Biggi & Tommy"
.Range("B8").Value = gewinn
.Range("B6").Value = prozent
.Range("B7").Value = prozentseitAbschluss
Else
If gewinn = .Range("e8").Value Then
.Range("e8").Value = gewinn
.Range("f8").Value = "am " & Date
höchsterGewinn1 = .Range("J8").Value
.Range("L9").Value = gewinn - höchsterGewinn
DifferenzGewinngrößer = .Range("M9").Value
.Range("A1").Value = gewinn - alterGewinn
DifferenzGewinnLetzterGewinn = .Range("B1").Value
.Range("A2").Value = prozent - .Range("B6").Value
DifferenzProzentLetzterProzent = .Range("B2").Value
.Range("A3").Value = prozentseitAbschluss - alterProzentseitAbschluss
DifferenzProzentseitAbschlussLetzterProzentseitAbschluss = .Range("B3").Value
alterProzentmitheutigemTag1 = Cells(7, 10)
alterProzentseitAbschluss1 = Cells(6, 10)
MsgBox "Der derzeitige " & GewinnVerlust1 & " € " & höchsterGewinn1 & " ist gleich hoch, wie der alte höchste Gewinn von € " & höchsterGewinn & ", welcher " & höchsterGewinnDatum & " war." & String(1, vbNewLine) & _
"Der derzeitige Prozentsatz beträgt mit heutigem Tag " & alterProzentmitheutigemTag1 & " % (" & DifferenzProzentLetzterProzent & " %), bzw. " & alterProzentseitAbschluss1 & " % (" & DifferenzProzentseitAbschlussLetzterProzentseitAbschluss & " %) seit Abschluss.", vbInformation, "Achtung! © by Biggi & Tommy"
.Range("B8").Value = gewinn
.Range("B6").Value = prozent
.Range("B7").Value = prozentseitAbschluss
End If
End If
End If
End If
If gewinn < .Range("e8").Value And höchsterGewinn = 0 Then
DatumgrößerGewinn = .Range("F8").Value
.Range("A1").Value = gewinn - alterGewinn
DifferenzGewinnLetzterGewinn = .Range("B1").Value
.Range("A2").Value = prozent - alterProzentmitheutigemTag
DifferenzProzentLetzterProzent = .Range("B2").Value
.Range("A3").Value = prozentseitAbschluss - alterProzentseitAbschluss
DifferenzProzentseitAbschlussLetzterProzentseitAbschluss = .Range("B3").Value
alterProzentmitheutigemTag1 = Cells(7, 10)
alterProzentseitAbschluss1 = Cells(6, 10)
MsgBox "Der derzeitige Verlust beträgt € " & Format(Range("$E$5"), "#,##0.00") & ", bzw. ist er " & DifferenzGewinnLetzterGewinn & " der letzte " & GewinnVerlust & " € " & alterGewinn & ", welcher am " & alterWertDatum & " war." & String(1, vbNewLine) & _
"Der derzeitige Prozentsatz beträgt mit heutigem Tag " & alterProzentmitheutigemTag1 & " % " & String(1, vbNewLine) & _
"(" & DifferenzProzentLetzterProzent & " %), bzw. " & alterProzentseitAbschluss1 & " % (" & DifferenzProzentseitAbschlussLetzterProzentseitAbschluss & " %) seit Abschluss.", vbInformation, "Achtung! © by Biggi & Tommy"
.Range("B8").Value = gewinn
.Range("B6").Value = prozent
.Range("B7").Value = prozentseitAbschluss
Else
If gewinn < .Range("e8").Value Then
DatumgrößerGewinn = .Range("F8").Value
.Range("A1").Value = gewinn - alterGewinn
DifferenzGewinnLetzterGewinn = .Range("B1").Value
.Range("A2").Value = prozent - alterProzentmitheutigemTag
DifferenzProzentLetzterProzent = .Range("B2").Value
.Range("A3").Value = prozentseitAbschluss - alterProzentseitAbschluss
DifferenzProzentseitAbschlussLetzterProzentseitAbschluss = .Range("B3").Value
alterProzentmitheutigemTag1 = Cells(7, 10)
alterProzentseitAbschluss1 = Cells(6, 10)
MsgBox "Der derzeitige " & GewinnVerlust1 & " € " & Format(Range("$E$5"), "#,##0.00") & " beträgt um € " & DifferenzGewinnkleiner & " weniger, als der höchste Gewinn von € " & höchsterGewinn & ", welcher " & DatumgrößerGewinn & " war, bzw. ist er " & DifferenzGewinnLetzterGewinn & " der letzte " & GewinnVerlust & " € " & alterGewinn & ", welcher am " & alterWertDatum & " war." & String(1, vbNewLine) & _
"Der derzeitige Prozentsatz beträgt mit heutigem Tag " & alterProzentmitheutigemTag1 & " % " & String(1, vbNewLine) & _
"(" & DifferenzProzentLetzterProzent & " %), bzw. " & alterProzentseitAbschluss1 & " % (" & DifferenzProzentseitAbschlussLetzterProzentseitAbschluss & " %) seit Abschluss.", vbInformation, "Achtung! © by Biggi & Tommy"
.Range("B8").Value = gewinn
.Range("B6").Value = prozent
.Range("B7").Value = prozentseitAbschluss
End If
End If
If .Range("E5").Value > 0 And .Range("E11").Value = "" Then
.Range("D11").Value = "niedrigster Gewinn:"
.Range("E11").Value = .Range("E5").Value
.Range("F11").Value = "am " & Date
.Range("H11").Value = prozent
.Range("I11").Value = "% mit Stichtag " & Date
.Range("H12").Value = prozentseitAbschluss
.Range("I12").Value = "% am " & Date & " seit Abschluss"
End If
If .Range("E5").Value > 0 And .Range("E11").Value < .Range("E5").Value Then
Else
If .Range("E5") < 0 And .Range("E5").Value < alterWertGewinnVerlust Then
.Range("D11").Value = "höchster Verlust"
.Range("E11").Value = .Range("E5").Value
.Range("F11").Value = "am " & Date
.Range("H11").Value = prozent
.Range("I11").Value = "% mit Stichtag " & Date
.Range("H12").Value = prozentseitAbschluss
.Range("I12").Value = "% am " & Date & " seit Abschluss"
höchsterVerlustniedrigsterGewinnWert1 = .Range("E11")
.Range("A9").Value = höchsterVerlustniedrigsterGewinnWert1 - höchsterVerlustniedrigsterGewinnWert
DifferenzhöchsterVerlustniedrigsterGewinnWert = .Range("B9").Value
MsgBox "ACHTUNG: Dein Verlust wird immer höher. Dein neuer höchster Verlust beträgt € " & Format(höchsterVerlustniedrigsterGewinnWert1, "#,##0.00") & ", welcher um € " & DifferenzhöchsterVerlustniedrigsterGewinnWert & " höher ist, als dein letzter " & höchsterVerlustniedrigsterGewinn & " von " & String(1, vbNewLine) & _
"€ " & Format(höchsterVerlustniedrigsterGewinnWert, "#,##0.00") & ", welcher am " & höchsterVerlustniedrigsterGewinnDatum & " war."
.Range("G11").Value = Date
Else
If .Range("E5") > 0 And Range("E5").Value < alterWertGewinnVerlust Then
.Range("D11").Value = "niedrigster Gewinn"
.Range("E11").Value = .Range("E5").Value
.Range("F11").Value = "am " & Date
.Range("H11").Value = prozent
.Range("I11").Value = "% mit Stichtag " & Date
.Range("H12").Value = prozentseitAbschluss
.Range("I12").Value = "% am " & Date & " seit Abschluss"
höchsterVerlustniedrigsterGewinnWert1 = .Range("E11")
.Range("A9").Value = höchsterVerlustniedrigsterGewinnWert1 - höchsterVerlustniedrigsterGewinnWert
DifferenzhöchsterVerlustniedrigsterGewinnWert = .Range("B9").Value
MsgBox "ACHTUNG: Dein Gewinn wird immer weniger. Dein neuer niedrigster Gewinn beträgt € " & Format(höchsterVerlustniedrigsterGewinnWert1, "#,##0.00") & ", welcher um € " & DifferenzhöchsterVerlustniedrigsterGewinnWert & " weniger ist, als dein letzter niedrigster " & String(1, vbNewLine) & _
"Gewinn von € " & Format(höchsterVerlustniedrigsterGewinnWert, "#,##0.00") & ", welcher am " & höchsterVerlustniedrigsterGewinnDatum & " war."
.Range("G11").Value = Date
End If
End If
End If
If prozent > Range("h8").Value Then
.Range("h8").Value = prozent
.Range("i8").Value = "% mit Stichtag " & Date
höchsterProzent = .Range("J9").Value
DifferenzhöchsterProzentLetzterhöchsterProzent = .Range("B4")
MsgBox "Neuer höchster Prozentsatz von " & höchsterProzent & " % (" & DifferenzhöchsterProzentLetzterhöchsterProzent & " %)!", vbInformation, "Achtung! © by Biggi & Tommy"
End If
If prozentseitAbschluss > Range("h9").Value Then
.Range("h9").Value = prozentseitAbschluss
.Range("i9").Value = "% am " & Date & " seit Abschluss"
höchsterProzentseitAbschluss = .Range("J10").Value
DifferenzhöchsterProzentseitAbschlussLetzterhöchsterProzentseitAbschluss = .Range("B5").Value
MsgBox "Neuer höchster Prozentsatz seit Abschluss von " & höchsterProzentseitAbschluss & " % (" & DifferenzhöchsterProzentseitAbschlussLetzterhöchsterProzentseitAbschluss & " %)!", vbInformation, "Achtung! © by Biggi & Tommy"
End If
End With
End Sub
LG
Thomas