ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Summer verdier i celler med en angitt farge

Det er ikke mulig å få til å summere celler med en angitt farge ved hjelp av den vanlige SUMMER()-funksjonen. Ved hjelp av den egendefinerte funksjonen nedenfor kan man summere celler i et regneark med den angitte bakgrunnsfargen :

Function SumByColor(InputRange As Range, ColorRange As Range) As Double
' returnerer summen av alle cellene i InputRange som har den samme 
' bakgrunnsfargen som cellen i ColorRange
' eksempel: =SumByColor($A$1:$A$20;B1)
' A1:A20 er det området som skal summeres
' B1 er den cellen som inneholder den bakgrunnsfargen som skal summeres
Dim cl As Range, TempSum As Double, ColorIndex As Integer
    ' Application.Volatile ' dette er valgfritt
    ColorIndex = ColorRange.Cells(1, 1).Interior.ColorIndex
    TempSum = 0
    On Error Resume Next ' ignorer celler uten verdier
    For Each cl In InputRange.Cells
        If cl.Interior.ColorIndex = ColorIndex Then 
            TempSum = TempSum + cl.Value
        End If
    Next cl
    On Error GoTo 0
    Set cl = Nothing
    SumByColor = TempSum
End Function

Funksjonen benyttes på samme måte som de innebygde regnearkfunksjonene. InputRange skal omfatte de cellene som funksjonen skal foreta beregning for, ColorRange skal være en cellereferanse til en celle som inneholder den bakgrunnsfargen du ønsker å begrense summeringen til.
I Excel 5/95 må variablene InputRange og ColorRange defineres som Variant i stedet for Range. Funksjonen kan enkelt endres til å omfatte andre regnearkfunksjoner som man ønsker å benytte på celler med en angitt bakgrunnsfarge.

 

Dokumentet er sist oppdatert 2002-06-26 12:41:47      Utskriftsvennlig versjon

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2024    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse