spellsleeper Geschrieben 15. April 2014 Geschrieben 15. April 2014 Hallo, ich habe vor eine einfache Summenprüfung in VBA für Berichte zu schreiben. Aber schon bei der Parameterfestlegung scheint etwas nich funktioniert zu haben. Kann nur das erste Parameter eingeben! 'Funktion zur Prüfung von Summenfeldern - RttD 14.04.2014 'Param1:Summenfeld Param2:Felder die addiert werden Function PrüfSummenFeld(ByRef SummenFeld As Range, ByRef Felder() As Variant) Dim summeAngegeben As Double Dim summeErrechnet As Double Dim basisFeld As Range Dim basisFeldAdresse As String Dim diff As Double Dim err As String summeAngegeben = SummenFeld.Value basisFeld = Application.Caller basisFeldAdresse = basisFeld.AddressLocal err = basisFeldAdresse + " - Summe ist nicht korrekt!" For i = 1 To (UBound(Felder()) + 1) summeErrechnet = summeErrechnet + SummeRange(Felder(i)) Next i diff = summeAngegeben - summeErrechnet If diff > 0.01 Or diff < -0.01 Then PrüfSummenFeld = err Cells(basisFeld.Row, basisFeld.Column).Interior.ColorIndex = 3 'rot Else PrüfSummenFeld = basisFeldAdresse Cells(basisFeld.Row, basisFeld.Column).Interior.ColorIndex = 4 'grün End If End Function Function SummeRange(ByVal vBereich As Range) As Double Dim lZeilen As Long Dim lSpalten As Long Dim lZaehlerZeilen As Long Dim lZaehlerSpalten As Long Dim dSumme As Double lZeilen = vBereich.Rows.Count ' Die Anzahl Zeilen werden bestimmt lSpalten = vBereich.Columns.Count ' Die Anzahl Spalten werden bestimmt dSumme = 0 ' Wert Initialisieren, ist eigentlich in VBA bei erstmaliger Verwendung nicht notwendig, ' aber eine alte Gewohnheit For lZaehlerZeilen = 1 To lZeilen ' Hier werden die Werte in den einzelnen Zellen (Felder in den Ranges) aufsummiert For lZaehlerSpalten = 1 To lSpalten dSumme = dSumme + vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value Next lZaehlerSpalten Next lZaehlerZeilen SummeRange = dSumme End Function Ich bin normalerweise eher mit voll Objektorientierten Sprachen wie C#, Java und manchmal C++ am werkeln. Sieht hier vielleicht ein Basic-Spezi schon was bei den Parametern falsch gelaufen ist?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden