vendredi 3 avril 2015

VBA: Voorwaadelijke opmaak met variabele range

Betreft VBA in Excel 2010



In VBA laat ik via een opdrachtknop (command button) een extern (csv) bestand importeren in een nieuw werkblad. Dat geïmporteerde csv bestand bevat af-/bijschrijvingen van een bankrekening. Vervolgens wordt met behulp van de reeds aanwezige gegevens op andere werkbladen allerlei handelingen verricht in dat nieuwe werkblad. In dat nieuwe werkblad wordt op elke regel - welke data bevat - in de betreffende M-kolom een 1 of een 0 geplaatst. Die 1 of 0 moet worden gebruikt om via Voorwaardelijke opmaak een groene Vink (als de celwaarde 1 is) of een rood kruis (als de celwaarde 0 is) te plaatsen. Ik weet (uiteraard) hoe je buiten VBA (dus in het werkblad zelf) via Voorwaardelijke opmaak een groene vink of een rood kruis laat plaatsen (afhankelijk van de celwaarde).



De vraag is hoe ik dit in VBA voor elkaar krijg, omdat:



- er telkenmale een ander (nieuw) werkblad wordt geïmporteerd

- het aantal regels met gegevens (data) variabel is, hetgeen m.i. van belang is om de "range voor Voorwaardelijke opmaak" steed te bepalen.



De variabele die ik voor een rij gebruik is: nRij

De variabele voor de laatste rij welke gegevens bevat is: LaatsteRij



Dat er steeds een nieuw werkblad wordt aangemaakt is te ondervangen door de code in een Module te plaatsen. De resterende vraag is dan:



wat is de (VBA) source (broncode) om in de M-kolom (waar het aantal rijen telkenmale verschillend is) een groene vink of een rood kruis te laten plaatsen e.e.a afhankelijk van de celwaarde (1 of 0).



Dus de code voor zoiets als:



For nRij = 2 To LaatsteRij

If ActiveSheet.Cells(nRij, "M").Value = 1 Then

[ plaats groene vink ]

ElseIf ActiveSheet.Cells(nRij, "M").Value = 0 Then

[plaats rood kruis ]

End If

Next nRij





VBA: Voorwaadelijke opmaak met variabele range

0 commentaires:

Enregistrer un commentaire