Zum Inhalt springen

VBA Summenprüfung für Excel


spellsleeper

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...