Thema Datum  Von Nutzer Rating
Antwort
Rot Fehler beim lesen aus der
04.10.2011 15:49:23 Gambler
NotSolved

Ansicht des Beitrags:
Von:
Gambler
Datum:
04.10.2011 15:49:23
Views:
1523
Rating: Antwort:
  Ja
Thema:
Fehler beim lesen aus der

Fehler bei Berechnung aus TextBox


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!

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Fehler beim lesen aus der
04.10.2011 15:49:23 Gambler
NotSolved