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

gekleurde cellen niet meetellen

Status
Niet open voor verdere reacties.

buckeru

Gebruiker
Lid geworden
6 jan 2011
Berichten
117
Hallo,

Heb het forum al door gespit, over gekleurde cellen en tellen.
maar ik wil dat juist de gekleurde cel niet wordt mee geteld.


vb:
D46=AANTAL.ALS(D$6: D$43;"M")
de cellen met waarde M worden nu netjes opgeteld
maar nu wordt er in het bereik een cel achtergrond kleur veranderd
maar de waarde van de cel blijft M

de gekleurde cel mag nu niet meer meetellen.

iemand een oplossing

grtn ptr
 
maar ik wil dat juist de gekleurde cel niet wordt mee geteld.
Dan is de vraag toch opgelost als je weet hoe je aantallen van de wél gekleurde cellen telt?
Code:
Function AANTALCELKLEUR(Bereik As Range, Kleurnummer As Integer) As Integer
    Application.Volatile
    For Each c In Bereik.Cells
        If c.Interior.ColorIndex = Kleurnummer Then
            AANTALCELKLEUR = AANTALCELKLEUR + 1
        End If
    Next c
End Function

Dan is het:
Code:
=AANTAL.ALS(D$6:D$43;"M")-AANTALCELKLEUR(D$6:D$43;1)
 
Laatst bewerkt:
?
formule ingevoerd, maar er gebeurd niet zo veel

of moet die function code ergens ingeplakt worden?
 

Bijlagen

De function moet je inderdaad in een module plaatsen...
Heb de function in je bestand geplaatst en kijk naar resultaat van de cel waar mijn formule staat. Dit moest 9 zijn, maar door de rode cel is dit 8 geworden.
 

Bijlagen

beste Spaarie
het klopt wat je hebt gedaan
ik zie dat het 9 moet zijn en door de rode cel is het 8 geworden
echter als ik de rode cel "benoem met geen opvulling" via het kleur emmertje
dan blijft de uitkomst 8 ? terwijl het dan 9 moet zijn.
formule iets aangepast in =AANTAL.ALS(D$6: D$43;"o")-AANTALCELKLEUR(D$6: D$43;3)
zet ik de formule terug en klik op de formulebalk dan wordt het bereik ook ineens niet meer geselecteerd

ligt dat aan mijn versie Excel? 2003?
bijlage screenshots in Excel 3 stuks ivm grote

:D wordt een smiley lol spatie tussen gezet
 

Bijlagen

Laatst bewerkt:
Fout gevonden wat betreft de formule weergave
cel stond als tekst -->> op standaard gezet op F2 toets en weer enter
nu weer goed

nu werkt wel de formule, maar nog niet helemaal naar behoren.
* hij ververst niet, tenzij ik ergens in de rij ga staan en op DEL druk
* ten 2e het tellen van de gekleurde cellen moet het zelfde zijn als
de cel C46 met inhoud. Dus de O moet ook meedoen. Anders klopt de telling niet
als er een cel met M gekleurd wordt.
zie bijlage:

Ik ben er bijna wie helpt mij verder
grtn ptr
 

Bijlagen

Deze voorwaarde moet nog in je functie toegevoegd worden:
Code:
Function TelAchtergrondkleur(Bereik As Range, Reference As Range)
Dim Cl As Range, ClrCount As Long
Application.Volatile
For Each Cl In Bereik
    If Cl.Interior.ColorIndex = Reference.Interior.ColorIndex And [COLOR="#FF0000"]Cl = Reference.Value [/COLOR]Then
        ClrCount = ClrCount + 1
    End If
Next
TelAchtergrondkleur = ClrCount
End Function
 
Volgens mij maak je een denkfout. Je telt alle "O" tjes en vervolgens ga je door kleurentellen verwijzen naar de interne kleur van van C46 (geel) dus aantal keer dat O voorkomt = 8 - twee gele cellen = 6.
Door ook te kijken naar de waarde in C46 heb ik het als volgt opgelost:
Code:
Function TelAchtergrondkleur(Bereik As Range, Reference As Range)
Application.Volatile
For Each Cl In Bereik
    If Cl.Value = Reference.Value Then
        If Cl.Interior.ColorIndex = Reference.Interior.ColorIndex Then ClrCount = ClrCount + 1
    End If
Next
TelAchtergrondkleur = ClrCount
End Function

En @Cobbe blijkbaar ook:D

Nog een kleine aanvulling. Volgens mij ziet Excel het niet als wijziging als je interne kleur aanpast. Je zal dan op F9 moeten drukken om de sheet opnieuw door te laten reken. Als je bv C46 kopieert en op plakken speciaal-->opmaak in bv C35. Dan wordt de sheet wel automatisch doorgerekend.
 
Laatst bewerkt:
@v&a: wilde alleen reageren op je kleine aanvulling omdat ik via me tel doe. Het klopt dat Excel bij wijziging van achtergrondkleur niet calculeert, maar dit kan je toch met een .calculate in een worksheet_change event ondervangen?
 
Mijn dank is verpletterend
het is gelukt

en auto refresh code nog ergens gevonden
voor de liefhebber

Code:
'Deze functie is gemaakt door Wim de Groot (c) november 2007
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CalculateFull
'De formules met een zelfgemaakte functie worden standaard niet opnieuw berekend,
'deze code zorgt ervoor dat dit wel gebeurt, zodra je op een andere cel klikt.
End Sub

grtn ptr
 
@spaarie, dank voor je tip en had ikzelf natuurlijk ook wel even kunnen proberen:o De TS heeft het ook gevonden dus case closed.;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan