Hallo zusammen,
ich bin neu hier und auch noch nicht so sehr vertraut mit vba, weshalb ich vor einem für mich unlöslichen Problem stehe...
Ich habe eine funktion zum laden und entladen einer batterie geschrieben, welche bei der eingabe in einer exceltabelle reibungslos funktioniert...
Diese Werte möchte ich jetzt über eine TextBox einlesen, aber die Berechnung ist jetzt eine andere obwohl die Ausgangswerte die selben sind.
Beim debuggen ist mir aufgefallen, dass die Null z.B. nur in "" angezeigt wird um einen Vergleich zu machen und somit bekomme ich einen verfälschte rechnung...
Wer kann mir bei dem Problem weiterhelfen?
Vor der Schleife werden Last und PV noch mit einem facktor versehen...
Hier der VBA Code:
Private Sub CommandButton1_Click()
Dim Speicher
Dim PV
Dim Last
Dim EV
Dim Überschuss
Dim Einspeise
Dim Bezug
Dim Max As Variant
Dim Platz As Variant
Dim Erzeugung As Variant
Dim Verbrauch As Variant
Dim PV_Anlagen_Größe As Variant
Dim EnergieErtrag As Variant
Dim EinspeiseVergütung As Variant
Dim SP As Variant
PV = Worksheets("Tabelle1").Range("C9:C35049")
Last = Worksheets("Tabelle1").Range("D9:D35049")
Überschuss = Worksheets("Tabelle1").Range("E9:E35049")
Speicher = Worksheets("Tabelle1").Range("F9:F35049")
Einspeise = Worksheets("Tabelle1").Range("G9:G35049")
Bezug = Worksheets("Tabelle1").Range("H9:H35049")
EV = Worksheets("Tabelle1").Range("I9:I35049")
Max = tbMax.Value
Verbrauch = tbVerbrauch.Value / 1000
PV_Anlagen_Größe = tbPV_Anlagen_Größe.Value
EnergieErtrag = tbEnergieErtrag.Value / 1000
Erzeugung = PV_Anlagen_Größe * EnergieErtrag
tbErzeugungPV.Value = Erzeugung * 1000
'Auswählen des Erzeugungs-Profils über ComboBox
Select Case cbPV_Daten.ListIndex
Case Is = 0
PV = Worksheets("Erzeugung PV").Range("C2:C35042")
For i = 2 To 35041
PV(i, 1) = PV(i, 1) * PV_Anlagen_Größe * EnergieErtrag
Next i
Worksheets("Tabelle1").Range(Worksheets("Tabelle1").Cells(10, 3), Worksheets("Tabelle1").Cells(35049, 3)) = PV
...
For i = 2 To 35041
Speicher(i, 1) = 0
Next i
Speicher(1, 1) = 0
For i = 2 To 35041
Überschuss(i, 1) = PV(i, 1) - Last(i, 1)
'Wenn mehr Last als Erzeugung
If Überschuss(i, 1) < 0 Then
Überschuss(i, 1) = Überschuss(i, 1) * (-1)
EV(i, 1) = PV(i, 1)
If Überschuss(i, 1) >= Speicher(i - 1, 1) Then
Überschuss(i, 1) = Überschuss(i, 1) - Speicher(i - 1, 1)
Bezug(i, 1) = Überschuss(i, 1) - Speicher(i - 1, 1)
Speicher(i, 1) = Speicher(i - 1, 1) - Speicher(i - 1, 1)
Else
Speicher(i, 1) = Speicher(i - 1, 1) - Überschuss(i, 1)
Überschuss(i, 1) = 0
End If
Einspeise(i, 1) = 0
'Wenn mehr Erzeugung als Last
Else
If Überschuss(i, 1) <= Max - Speicher(i - 1, 1) Then
Speicher(i, 1) = Speicher(i - 1, 1) + Überschuss(i, 1)
EV(i, 1) = Last(i, 1) + Überschuss(i, 1)
Einspeise(i, 1) = 0
Else
Platz = Max - Speicher(i - 1, 1)
Speicher(i, 1) = Max
EV(i, 1) = Last(i, 1)
Einspeise(i, 1) = Überschuss(i, 1) - Platz
End If
Bezug(i, 1) = 0
End If
Danke schonmal für eure Hilfe!