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

cellen met bepaalde namen automatisch een kleur geven.

Status
Niet open voor verdere reacties.

exofanatics

Gebruiker
Lid geworden
9 apr 2016
Berichten
39
Ik heb een excel sheet met veel namen.
Het gaat hier om een werkrooster.
Nu zitten er onder die namen payrollers, welke ik (de cel) een kleur wil geven.
De namen komen ook nog eens voor in meerdere cellen.
Is het mogelijk om een lijst namen aan te geven waarvan, zodra ik deze naam in een cel typ, automatisch de achtergrondkleur van de cel wijzigt?

Met automatische opmaak krijg ik het wel voor elkaar om de cel te kleuren bij één naam, maar die cel moet bij meerdere namen kleuren.

Alvast bedankt voor de hulp !!

Groet, Marco
 
In de hogere versies van Excel (vanaf 2007 meen ik) kan je zeer veel Voorwaardelijke opmaken aanmaken....
 
Dat klopt, maar mijn wens is: een lijst namen aanmaken en telkens als ik één van die namen in een willekeurige cel typ, dat dan die cel zijn achtergrondkleur bijvoorbeeld geel wordt.

Groet, Marco
 
Ahhhh... Ik dacht dat elke naam een eigen kleur moest krijgen. Werk in jouw geval met een VO met een formule. Laat via de MATCH (vergelijken) functie de waarde van de cel checken in de lijst met namen. Als die dan gevonden wordt, kan je de cel laten kleuren. De formule is iets als
=MATCH([deze cel];[bereik van cellen met namen];0)=1
 
Dat klopt! Daarom heb ik ook al heel vriendelijk de nederlandse versie in m'n tekst tussen haakjes er bij gezet.... ;)
 
Ik ben al een stukje verder gekomen met de code die je had voorgesteld.
Echter kleurt de cel naar keuze alleen bij de eerste naam uit het bereik van de te vergelijken cellen.
De code loopt op de een of andere manier niet door, dit terwijl het bereik wel goed ingegeven wordt.
verder wordt de cel in het verkeerde tabblad geel, dit moet in het blad planning gebeuren.
Ik snap het even niet meer, wil iemand mij nog helpen?
Ik heb de sheet bijgevoegd.
Bekijk bijlage 268809

Groet, Marco
 
Ik zie net dat hij de automatische opmaak niet heeft opgeslagen, ik probeer het later nog een keer en het bestand te posten.
 
Hmmm... Ik heb alvast ff gekeken in het "foute" bestandje, maar kon daar echt niet in opmaken wat je precies zou willen laten kleuren. Geef dat aub nog wel goed aan in je nieuwe bijlage als je wilt.
 
Ik heb het bestand bijgevoegd zoals ik het bedoel.
Als ik nu de eerste naam invul van de kolom namen in het blad norm tijden gaat het goed.
Maar de cel in het blad planning moet kleuren bij alle namen uit de kolom in norm tijden.

Bedankt weer voor de hulp !!

Groet, Marco

P.s. Ik heb even de simpelste formule in de voorwaardelijke opmaak gezet om duidelijk te maken wat ik bedoel.
De code die Ginger me eerder stuurde doet precies hetzelfde als deze.
 
Nu is het weer zo dat ik een bestand met voorwaardelijke opmaak opsla, weer open en dan is de voorwaardelijke opmaak weg.
Ik snap er niks meer van ik geef het op.
 
Misschien is dit de oplossing voor jou middels VBA. Ik heb een code aangepast die ooit voor mij gemaakt is door HSV.
In het tabblad Payroll geef je de namen in kolom D die hier aan voldoen.
Wanneer je nu een naam in het tabblad planning invoert dan krijgt deze een kleur.

groet Geer

Bekijk bijlage Auto rooster.xlsm
 
Bedankt Geer, dit komt erg in de buurt.
Nou weet ik helemaal niks van VBA en dat is nog minder dan van excel, maar als ik een naam invoer welke niet in de kolom d voorkomt kleurt deze ook.
Zo voerde ik mijn eigen naam (marco) in in het blad planning en deze werd ook blauw terwijl hij niet in de kolom staat.
Ook blijft de achtergrond van de cel gekleurd als ik een naam weer weghaal.
Ik ga nog eens even googlen om te kijken of ik ermee verder kom.
Natuurlijk geweldig bedankt voor het meedenken.

Groet, Marco

Aanpassing:
Ik zie net dat dit alleen gebeurt bij cellen C9:C11 Raar.
Even rommel in het script en kijken of ik dit gewijzigd krijg.

Aanpassing 2: Ik denk dat ik al weet hoe het komt. Als een cel eenmaal een naam uit het blad payroll heeft bevat, blijft de cel de kleuring behouden, ook als er een andere naam in getypt wordt. Is dit zo te maken dat de kleuren "gereset" worden als het ware als ik een naam verwijder en/of wijzig?

Bedankt!!
 
Laatst bewerkt:
Vervang de bestaande macro voor deze;

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    With Sheets("payroll")
        sn = Split(Join(Application.Transpose(.Range("D2:D" & .Cells(Rows.Count, 4).End(xlUp).Row)), ";"), ";")
    End With
    For i = LBound(sn) To UBound(sn)
     Set c = Sheets("planning").Range("B2:K150").Find(sn(i), , , xlPart)
        If Not c Is Nothing Then
        firstaddress = c.Address
        Do
            With c.Interior
                .ColorIndex = 19
            End With
            
                        
        Set c = Sheets("planning").Range("B2:K150").FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstaddress
        
        End If
    Next
        For Each c In Range("B2:K150")
        If c.Value = "" Then
        With c.Interior
                .ColorIndex = 2
            End With
    End If
  Next
            
            
End Sub
 
kan ik dat gewoon door programmacode weergeven en dan deze code over de oude code te plakken?

Groet, Marco
 
Je kan m gewoon over de oude heen plakken.
Had nog wat zitten stoeien. Zal ongetwijfeld mooier en beter kunnen maar met onderstaande macro wordt er ook gekeken wanneer je iemand uit de "payroll" haalt.

Voor een kortere en/of betere code moet je bij de echte experts zijn.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    With Sheets("payroll")
        sn = Split(Join(Application.Transpose(.Range("D2:D" & .Cells(Rows.Count, 4).End(xlUp).Row)), ";"), ";")
    End With
    
    For Each c In Range("B2:K150")
        If c.Value <> i Then
        With c.Interior
                .ColorIndex = 2
            End With
    End If
  Next
    
    For Each c In Range("B2:K150")
        If c.Value = "" Then
        With c.Interior
                .ColorIndex = 2
            End With
    End If
  Next
    
    For i = LBound(sn) To UBound(sn)
     Set c = Sheets("planning").Range("B2:K150").Find(sn(i), , , xlPart)
        If Not c Is Nothing Then
        firstaddress = c.Address
        Do
            With c.Interior
                .ColorIndex = 19
            End With
            
                        
        Set c = Sheets("planning").Range("B2:K150").FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstaddress
        
        End If
    Next
        
            
            
End Sub
 
Ik krijg 'fout 13 tijdens uitvoering' als ik deze code over de oude plak en daarna een naam invoer
 
Ook blijft de kleur gehandhaafd als ik een andere naam invoer in een cel welke al gekleurd was.
Als ik een andere naam invoer in een cel waarin een naam uit de lijst heeft gestaan en dus gekleurd is, blijft de kleur bestaan en dat zou niet moeten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan