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

Excel kleur en waarde van verschillende cellen optellen

Status
Niet open voor verdere reacties.

Annelou

Nieuwe gebruiker
Lid geworden
17 feb 2017
Berichten
4
Hallo,

Ik heb een spreadsheet met onder andere een kolom waar ik 3 kleuren gebruik, geel, oranje en groen en een kolom waar ik namen van medewerkers in zet.

Nu wil ik heel graag tellen hoevaak een collega voorkomt met gele cellen achter zijn naam en oranje cellen en groene cellen. En dat dan voor alle verschillende collega's.

Voorwaarden zijn dus dat in kolom A iemand Michiel heet en kolom B de cel geel is. En daar moet dan het aantal van bijvoorbeeld 7 uitkomen. Voor de groene met de combinatie van zijn naam 3 en de oranje 6.

Hoe roep je een kleur aan? Oftewel hoe zeg je als kolom A de naam Michiel is en in kolom B de cel geel gekleurd is, hoevaak is die combinatie er?

Al vast bedankt, Annelou
 
Dat kun je met formules niet bereiken, daar zijn macro's voor nodig.
Als je een voorbeeld plaats is er waarschijnlijk wel iemand bereid om ernaar te kijken.
Op voorhand zou ik zeggen dat je opzet niet erg doordacht is: eerst met kleuren gaan werken en je dan pas afvragen hoe je gegevens gaat analyseren.
 
Laatst bewerkt:
Ik snap dat er macro's vor nodig zijn. De sheet is perfect doordacht en werkt goed. ik wil er achteraf alleen nog een analyse over los laten. Soms heb je dat......
 
Bijgevoegd bestand

Ik heb een voorbeeld bestandje toegevoegd. Het originele bestand bevat iets te veel gevoelige info. Maar in dit voorbeeld bestandje wordt precies de situatie nagebootst.

Al vast bedankt voor de hulp, AnnelouBekijk bijlage Vraag help mij.xlsx
 
Probeer het eens met deze:
Bekijk bijlage Vraag help mij.xlsm

De gebruikte functie is deze:
Code:
Function SOMNK(Naam As Range, Kleur As Range, Namen As Range) As Integer
    Dim cl As Object
    
    For Each cl In Namen
        If cl.Value = Naam And Cells(cl.Row, cl.Column + 1).Interior.Color = Kleur.Interior.Color Then SOMNK = SOMNK + 1
    Next cl
End Function
 
Laatst bewerkt:
Dank je Edmoor!! Je bent geweldig! Als ik kon, zou ik je zoenen!

Laatste vraag, ik moet nu op CRT+ALT+Shift+F9 drukken om te updaten, maar ik weet uit het verleden dat dit sneller kon. Hoe ook alweer?

DANK! DANK DANK!
 
Door wijzigen van een kleur kan de function niet getriggert worden om een herberekening uit te voeren.
Ik weet dat er wel code is die dat kan, maar die is zo omvangrijk dat ik je die liever bespaar.
De code wordt weleens geplaatst door @EvR, je kan er op zoeken als je wilt.

Ik bespaar je hoofdpijn met een kleine code die wordt uitgevoerd als je een selection_change doet na de kleurwijziging.

In Blad1_module.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Application.Cells.Dirty
End Sub
 
Of:
Code:
Function SOMNK(Naam As Range, Kleur As Range, Namen As Range) As Integer
    Dim cl As Object
    
    [COLOR="#FF0000"]Application.Volatile[/COLOR]
    For Each cl In Namen
        If cl.Value = Naam And Cells(cl.Row, cl.Column + 1).Interior.Color = Kleur.Interior.Color Then SOMNK = SOMNK + 1
    Next cl
End Function

Maar ook dat wordt niet getriggerd door alleen een kleur te veranderen.
 
In plaats van met kleuren kun je de status beter met een categorie duiden. Dan kun je met een eenvoudige SOM.ALS-formule werken en heb je helemaal geen onnodig gecompliceerde VBA nodig.
Je bent wellicht visueel ingesteld als je graag met kleuren werkt. Mijn advies als je nog eens eens een databestand maakt: vraag je eerst af welke informatie je als output wenst en pas je opzet daarop aan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan