• 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.

Somcelkleur

Status
Niet open voor verdere reacties.

Ersin22

Gebruiker
Lid geworden
4 mrt 2016
Berichten
24
Hallo,

Ik heb een bestand met verschillende getallen en ik wil alleen de lichtgroene cellen opgeteld hebben.
Ik heb wel iets gelezen over somcelkleur en vba maar het wil me echt niet lukken als ik de code erin plak.
Ik ga als volgt te werk.
Ik open vba en daarna plak ik dit erin
Code:
Public Function SOMKLEUR(Bereik As Range, CelKleur As Range, Optional Tellen As Integer) As Variant
    Dim i As Long
    Dim x As Long
    
    For i = Bereik.Row To Bereik.Rows.Count + Bereik.Row - 1
        If Cells(i, CelKleur.Column).Interior.Color = CelKleur.Interior.Color Then
            Select Case Tellen
                Case 0
                    'Het bereik optellen
                    SOMKLEUR = SOMKLEUR + Cells(i, Bereik.Column)
                Case 1
                    'Het aantal cellen met de kleur tellen
                    x = x + 1
                    SOMKLEUR = x
            End Select
        End If
    Next i
End Function

Daarna klik ik op uitvoeren en maak ik een macro aan, maar dan krijg ik de melding er wordt een end sub verwacht?

Ik hoop dat jullie mij snel verder kunnen helpen.
 
Zet de UDF in een gewone module. Je kan de functie dan aanroepen in een willekeurig blad.
 

Bijlagen

  • Somkleur.xlsb
    15 KB · Weergaven: 453
Dit is ook geen macro in de zin van het woord, het is een functie die rechtstreeks aangeroepen wordt in het werkblad via =SOMKLEUR(bereik;celkleur)
Maar als echter de cellen gekleurd worden via Voorwaardelijk Opmaak zal ook deze code niet helpen.
 
Hallo,

Bedankt voor jullie bericht.
Het is niet in voorwaardelijke opmaak bij mij. Bij het geüploade bestand van jou wel.
 
VenA , jou bestand werkt wel alleen dan wil van links naar rechts optellen ipv boven naar beneden. Dat werkt weer niet...
 
Laat dat maar even in jouw eigen bestand zien.
 
Code:
Public Function SOMKLEUR(Bereik As Range, CelKleur As Range, Optional Tellen As Integer) As Variant
    Dim i As Long
    Dim x As Long
    
    For Each cl In Bereik
        If cl.Interior.Color = CelKleur.Interior.Color Then
            Select Case Tellen
                Case 0
                    'Het bereik optellen
                    SOMKLEUR = SOMKLEUR + cl.Value
                Case 1
                    'Het aantal cellen met de kleur tellen
                    x = x + 1
                    SOMKLEUR = x
            End Select
        End If
    Next cl
End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan