Startseite Inhaltsverzeichnis Nutzungsbedingungen Datenschutz Impressum Weitere Informationen

CODE-SCHNIPSEL

Individuelle Formeln: SUMMEWENNFARBE und ZAEHLENWENNFARBE

VBA und Makros • Codeschnipsel • Arbeitsblatt • Formeln • Farbe • UDF • Anzahl

Ausgangslage ... Was tut der Codeschnipsel?

Immer wieder nützliche Formeln:
SUMMEWENNFARBE(<Vergleichszelle>;<Summenbereich>) - Summiert alle gleichfarbigen Zellen.
ZAEHLENWENNFARBE(<Vergleichszelle>;<Zaehlbereich>) - Zählt alle gleichfarbigen Zellen.

Wichtiger Hinweis: Farbveränderungen haben in Excel® keine Neuberechnung zur Folge!!! Für Abhilfe kann die Prozedur OVBAde_KomplettBerechnung (siehe unten) verwendet werden. Evtl. können Sie sich einen neuen Schalter erstellen und diesen mit Komplettberechnung betiteln und die Prozedur aufrufen.

VBAVBA Codeschnipsel
XLSQuelltext zur Verwendung mit Microsoft® Excel®

Der Quelltext ...

Option Explicit
' ****************************************************************
' Autor/en und Original-Quelltext unter:
' https://www.online-vba.de/vba_farbsummeformel.php
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von https://www.online-vba.de
' ****************************************************************


Public Function SUMMEWENNFARBE(ByRef FarbZelle As Range, ByRef ZaehlBereich As Range) As Double
  Dim lColorIndex As Long
  Dim dSumme As Double
  Dim oCell As Object
    
    lColorIndex = FarbZelle.Interior.ColorIndex
    dSumme = 0
    For Each oCell In ZaehlBereich.Cells
        If oCell.Interior.ColorIndex = lColorIndex Then
            If IsNumeric(oCell.Value) = True Then
                dSumme = dSumme + CDbl(oCell.Value)
            End If
        End If
    Next
    
    SUMMEWENNFARBE = dSumme
    
    Set oCell = Nothing
End Function

Public Function ZAEHLENWENNFARBE(ByRef FarbZelle As Range, ByRef ZaehlBereich As Range) As Long
  Dim lColorIndex As Long
  Dim lCount As Long
  Dim oCell As Object
    
    lColorIndex = FarbZelle.Interior.ColorIndex
    lCount = 0
    For Each oCell In ZaehlBereich.Cells
        If oCell.Interior.ColorIndex = lColorIndex Then
            lCount = lCount + 1
        End If
     Next
    
    ZAEHLENWENNFARBE = lCount
    
    Set oCell = Nothing
End Function

Public Sub OVBAde_KomplettBerechnung()
    Application.CalculateFull
End Sub

Anmerkungen und Hinweise ...

Wichtiger Hinweis: Farbveränderungen haben in Excel® keine Neuberechnung zur Folge!!! Für Abhilfe kann die Prozedur OVBAde_KomplettBerechnung (siehe unten) verwendet werden. Evtl. können Sie sich einen neuen Schalter erstellen und diesen mit Komplettberechnung betiteln und die Prozedur aufrufen.

Dieser Codeschnipsel wurde geschrieben von Marc Wershoven im Jahr 2013.
Es gelten die Nutzungsbedingungen von Online-VBA.de.
TOTOP
ANZEIGE