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

Als-functie en kleuren

Status
Niet open voor verdere reacties.

Roelant

Gebruiker
Lid geworden
20 mrt 2007
Berichten
112
Hoe zeg je in Excel-taal dat bijvoorbeeld als cel A1 gekleurd is (maakt niet uit welke kleur), dan moet cel B1 geel gekleurd worden (opvulkleur).
 
dat kan niet in (normale) excel-taal. Dan moet cel B1 ook een ALS-criterium hebben.

met VBA kan het ongetwijfeld wel, maar dat moeten de VBA-experts je maar even uitleggen.
 
Hoe komt cel A1 aan een kleurtje? Via voorwaardelijke opmaak?
 
Die cel is door iemand gewoon handmatig gekleurd, maar die cel B1 moet dus ook gekleurd worden als die cel A1 gekleurd is en niet als dat niet het geval is.
 
En in welke kleur moeten die cellen dan staan? Is daar enige restictie op? Bv. dezelfde kleur als in A?
 
Nee, de kleur die de cel moet krijgen is een nader te bepalen kleur. Dat staat in principe los van de kleur die de cel heeft waar je het uit leest. De kleur die het moet krijgen is eigenlijk afhankelijk van de locatie van de cel waar je uit leest.

Ik heb er even dieper over nagedacht, en eigenlijk is het volgende wat er moet gebeuren:

Het gaat eigenlijk niet om of een bepaalde cel gekleurd is, maar of een van de cellen in een bepaalde kolom gekleurd is. Als dat het geval is dan moet een bepaalde cel in dezelfde kolom maar dan in een andere sheet een kleur krijgen die afhankelijk is van het rijnummer van de cel waar uit gelezen wordt.

Ik hoop dat dit duidelijk is. Het ging me er in principe eerst om om te weten hoe je de kleur leest uit een cel. Het uitzoeken van het hoe en wat zou ik dan wel later uitzoeken.
 
Hoi

Als je dit in een module plakt in VBA (doe Alt-F11 om daar te geraken), dan kan je de functie overal in je blad gebruiken.

Code:
Function StaatErKleurIn(rng As Range) As Boolean
    
    Dim r As Range
    
    StaatErKleurIn = False
    
    For Each r In rng
        If r.Interior.ColorIndex <> -4142 Then
            StaatErKleurIn = True
            Exit Function
        End If
    Next
    
End Function

Bijvb. in een cel zetten:

=StaatErKleurIn(A1:A15)

er komt dan WAAR of ONWAAR als uitkomst.

Wigi
 
Bedankt, dat werkt inderdaad!

Maar 1 minpuntje. Als je de functie hebt uitgevoerd en je veranderd daarna de opvulling, dan veranderd de uitkomst van de functie niet zonder dat je de functie opnieuw aanroept. Is daar oplossing voor zodat die waarde ook gewoon veranderd op het moment dat je die opvulling veranderd?
 
Neen, dat gaat niet.

Er is geen event in VBA dat het toepassen van een kleurtje traceert.

Je hebt wel events zoals het selecteren van een andere cel(len), het veranderen van een cel(len), een ander tabblad kiezen, enz. Maar dus niet een kleurtje geven.

Wat evt. kan, is

Code:
Application.Volatile

zetten in de functie. Dan wordt het vaak herberekend (maar niet na kleurtje geven). Wel als je iets anders elders wijzigt.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan