• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Aantal.als in combinatie met opmaak

Status
Niet open voor verdere reacties.

doesr

Gebruiker
Lid geworden
3 jun 2001
Berichten
123
Is het mogelijk om mbv -aantal.als- alle cellen te tellen die een gele (of willekeurige andere kleur) achtergrond hebben.
Dus zoiets als: aantal.als(A1:A100; "geleopmaak")
 
Weet niet of het kan... denk van niet...
met voorwaardelijke opmaak kan het wel...
Opmaak - voorwaardelijke opmaak en dan opmaak instellen met voorwaarde
 
je schrijft: met voorwaardelijke opmaak kan het wel...

maar ik wil het juist andersom.
Met voorwaardelijke opmaak heb je een waarde in de cel en dat genereerd een opmaak.

Ik wil juist dat de opmaak een waarde genereerd. "Tel alle gele cellen in kolom A.
 
Plaats onderstaande regels in een moduleblad en in je werkblad is dan de formule =som_als_kleur beschikbaar die doet wat je wilt.


'Deze functie in je moduleblad plaatsen, met som_als_kleur(A1;A2:A33) worden alle cellen opgeteld
'in range(a2:a33) met als achtergrond kleur die van a1

' Hou er wel rekening mee dat bij het wijzigen van alleen de kleur van de cel er geen automatische herberekening
' wordt uitgevoerd, dus even op F9 drukken. Bij het wijzigen van een waarde volgt wel een herbereking

' Met deze functie kun je 2 ranges op geven, niet meer zonder de functie aan te passen


Function Som_als_kleur(kleur As Range, Range1, Optional Range2) As Double

Dim objCell As Range

Application.Volatile


Som_als_kleur = 0
'cellTextColour = kleur.Font.Color
cellbackground = kleur.Interior.Color


For Each objCell In Intersect(Range1, _
Range1.Parent.UsedRange)
If Application.IsNumber(objCell.Value) And _
objCell.Interior.Color = cellbackground Then _
Som_als_kleur = Som_als_kleur + objCell.Value
Next objCell


If Not IsMissing(Range2) Then
For Each objCell In Intersect(Range2, _
Range2.Parent.UsedRange)
If Application.IsNumber(objCell.Value) And _
objCell.Interior.Color = cellbackground Then _
Som_als_kleur = Som_als_kleur + objCell.Value
Next objCell

End If
End Function
 
Dat is geen makkelijk ogende oplossing.
Mijn poging strandt bij: #NAAM?

Heb je er een kant en klaar voorbeeld van? Om te zien of ik het goed heb begrepen.

Overigens:
Ik zou graag 4 verschillende kleuren tellen, dus dan gaat het op deze wijze niet lukken.

Bedankt voor de creatie.
 
In de bijlage een voorbeeld.
 

Bijlagen

  • som_als_kleur.zip
    8,7 KB · Weergaven: 1.398
Het werkt goed maar ........
Ik wil niet de inhoud van een gekleurde cel optellen maar het aantal gekleurde cellen, ongeacht de inhoud.
Is daar nog iets voor te bedenken.

Gr. Rob
 
Macro even gekopieerd en de op te halen waarde vervangen door 1.
 

Bijlagen

  • som en aantal_als_kleur.zip
    9,6 KB · Weergaven: 1.888
Geweldig! Precies wat ik zocht.

Bedankt voor het meedenken allemaal.
 
Hans123,
Leuk dat jouw oplossing bijna 9 jaar (en een aantal excel-versies) later nog steeds functioneert en actueel is.
Thanks

Grtz,
Joc
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan