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

Celkleur toekennen obv VBA

Status
Niet open voor verdere reacties.

Neocon

Gebruiker
Lid geworden
28 dec 2009
Berichten
57
Goedemiddag,

Zelf ben ik een beginnend 'VBA-er' en kom nu iets tegen dat wat (ver) boven mijn macht gaat.

In Excel heb ik een code geschreven die een cel een zwarte achtergrondkleur geeft indien deze leeg is (in het voorbeeld voor A1:A5).
De code scant de cel en als deze leeg is wordt deze zwart. In het voorbeeldbestandje worden A2 en A5 zwart.
Echter wil ik ook de cellen C2:E2, C5:E5 zwart hebben, afhankelijk van de inhoud in kolom A (dus niet afhankelijk van de inhoud van de eigen cel, maar van een andere cel).

De code voor de selectie A1:A5 is alsvolgt:

Sub Macro2()
'
' Kleur toekennen
'
Dim cell As Range
Range("A1:A5").Select
For Each cell In Selection
If cell.Value = "" Then
cell.Interior.ColorIndex = 1

End If
Next cell

'
End Sub

Nu ben ik nog zoekende naar een code voor de overige cellen.
Hopelijk kan één van jullie helpen. Alvast bedankt!

Groet,
Jeffrey
 

Bijlagen

Ikzelf ben ook geen VBA-expert, maar dit zo lezende is Voorwaardelijke Opmaak (VO) toch een prima optie?
 
Het stukje cell.Interior.ColorIndex = 1
vervangen: Range(cell, cell.Offset(0, 4)).Interior.ColorIndex = 1

Edit: het voordeel van VO is dat de cellen ook weer wit worden als er weer wél iets ingevuld is.
 
Laatst bewerkt:
Dank voor de snelle reactie.
De code werkt prima!

VO krijgt ook mijn voorkeur, maar de sheet wordt gebruikt door verschillende collega's. Ervaring uit het verleden leert dat VO maximaal 2 weken goed blijft staan, door knip- en plakwerk wordt het bestand één bende.

Hiermee gaat het goedkomen! Dank!
 
Tja, collega's hé... :shocked:

Misschien blad beveiligen?

In ieder geval succes ermee.
 
Tja, collega's hé... :shocked:

Misschien blad beveiligen?

In ieder geval succes ermee.

Het dichttimmeren van het document heb ik vaker geprobeerd (en zou ik graag willen!), maar het is een 'levendig' document.
Als ik beveilig wat ik wil beveiligen, is het document onwerkbaar voor hen.

Ik ga het op deze wijze proberen :-)
 
Het stukje cell.Interior.ColorIndex = 1
vervangen: Range(cell, cell.Offset(0, 4)).Interior.ColorIndex = 1

Edit: het voordeel van VO is dat de cellen ook weer wit worden als er weer wél iets ingevuld is.

Beste Marcel,

Kan jij ook aangeven hoe de functie verandert dient te worden als kolom A niet zwart gemaakt dient te worden.
Kolom B wordt zwart gemaakt op basis van de input van kolom A.
Alvast bedankt!
 
Excuus, ik was iets te snel met het bericht te plaatsen. Had zelf iets beter na moeten denken.
Heb de volgende regel gebruikt.

cell.Offset(0, 1).Interior.ColorIndex = 1
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan