De opmerkingsindicator (rode driehoekje) aanpassen of verbergen

Geplaatst in Opmaak, VBA door Exhelp | Tags: , , , , ,
Van toepassing op: Excel 2003, Excel 2007, Excel 2010, Excel 2013

Onlangs kreeg ik van een bezoeker (FTA) volgende vraag: “Ik gebruik een werkblad waarin meerdere velden een rode achtergrond hebben.
Nu stel ik mij de vraag of je de kleur van de opmerkingindicator kan wijzigen?”

001

Het antwoord is: nee, dat kan niet.

Dat betekent echter niet dat er geen oplossing bestaat. Met een beetje creativiteit genaamd ‘VBA’ kunnen we wel iets verzinnen.

De indicator in een andere kleur weergeven

Zoals FTA al aangaf kan het best onhandig zijn dat het rode driehoekje rood is. Excel laat ons niet toe dit te wijzigen, maar we kunnen wel het driehoekje nabootsen en zo het ‘oude’ driehoekje vervangen.

We gaan dit doen met een stukje VBA. Plaats onderstaande procedure in een nieuwe Module:


Sub OpmerkingsIndicator()
' ********************
' http://www.exhelp.be
' ********************
Dim ws As Worksheet
Dim opmerking As Comment
Dim r As Range
Dim driehoek As Shape
Dim breedte As Double
Dim hoogte As Double
Dim kleur As Double
Dim vorm As Shape

Set ws = ActiveSheet

'Eventuele eerder geplaatste shapes verwijderen
For Each vorm In ws.Shapes

     If Not vorm.TopLeftCell.Comment Is Nothing Then

          If vorm.AutoShapeType = msoShapeRightTriangle Then vorm.Delete

     End If

Next vorm

'Afmetingen / kleur kiezen
breedte = 5
hoogte = 5
kleur = 15

'Nieuwe shapes plaatsen
For Each opmerking In ws.Comments

     Set r = opmerking.Parent
     Set driehoek = ws.Shapes.AddShape(msoShapeRightTriangle, r.Offset(0, 1).Left - breedte, r.Top + 1, breedte, hoogte)

     With driehoek
          .Flip msoFlipVertical
          .Flip msoFlipHorizontal
          .Fill.ForeColor.SchemeColor = kleur
          .Fill.Visible = msoTrue
          .Fill.Solid
          .Line.Visible = msoFalse
     End With

Next opmerking

End Sub

Druk op ALT-F8 en voer de procedure uit:

003

Bovenstaande VBA code gaat een driehoekige vorm op je werkblad plaatsen, en dit in elke cel met een opmerking. Zo lijkt het alsof je opmerkingsindicator een andere kleur gekregen heeft.

002

De indicator verbergen

De indicator kan op 2 manier onzichtbaar gemaakt worden.

De indicatorkleur wijzigen naar de achtergrondkleur van de cel

We kunnen bovenstaande VBA code een klein beetje aanpassen als volgt:


Sub OpmerkingsIndicator()
' ********************
' http://www.exhelp.be
' ********************
Dim ws As Worksheet
Dim opmerking As Comment
Dim r As Range
Dim driehoek As Shape
Dim breedte As Double
Dim hoogte As Double
'Dim kleur As Double
Dim vorm As Shape

Set ws = ActiveSheet

'Eventuele eerder geplaatste shapes verwijderen
For Each vorm In ws.Shapes

     If Not vorm.TopLeftCell.Comment Is Nothing Then

          If vorm.AutoShapeType = msoShapeRightTriangle Then vorm.Delete

     End If

Next vorm

'Afmetingen / kleur kiezen
breedte = 5
hoogte = 5
'kleur = 15

'Nieuwe shapes plaatsen
For Each opmerking In ws.Comments

     Set r = opmerking.Parent
     Set driehoek = ws.Shapes.AddShape(msoShapeRightTriangle, r.Offset(0, 1).Left - breedte, r.Top + 1, breedte, hoogte)

     With driehoek
          .Flip msoFlipVertical
          .Flip msoFlipHorizontal
          '.Fill.ForeColor.SchemeColor = kleur
          .Fill.ForeColor.RGB = r.Interior.Color
          .Fill.Visible = msoTrue
          .Fill.Solid
          .Line.Visible = msoFalse
     End With

Next opmerking

End Sub

Op deze manier gaat onze VBA code de achtergrondkleur van de cel uitlezen, en dezelfde kleur toepassen op de opmerkingenindicator.

Indicators altijd verbergen

Excel laat je toe om indicators steeds te verbergen. Dit doe je als volgt:

Kies Bestand > Opties > Geavanceerd

Kies onder ‘Weergave’ voor ‘Geen opmerkingen of indicatoren’

004

 

2 reacties op “De opmerkingsindicator (rode driehoekje) aanpassen of verbergen”

Plaats een reactie

U moet ingelogd zijn om te reageren.

Login

Forums

Exhelp

Meest recente berichten

TAGS



Creative Commons Licentie
Op dit werk is een Creative
Commons Licentie
van toepassing.