cellen in een tabel kleuren op basis van waarde

Status
Niet open voor verdere reacties.

KeBr

Gebruiker
Lid geworden
25 apr 2016
Berichten
160
Ik heb heel veel tabellen waar op diverse plaatsen "ja" in een cel staat. als dit zo is moet deze groen worden. Als er "nee" staat rood. anders moet achtergrond wit blijven.

Is hier een macro voor? ik heb al iets gemaakt maar dit werkt niet goed. zie bijlage.
 

Bijlagen

  • test macro.docm
    25,8 KB · Weergaven: 38
Probeer 'm eens zo:
Code:
    If Selection.Information(wdWithInTable) Then
        For Each c In Selection.Tables(1).Range.Cells
            If InStr(1, LCase(c.Range.Text), "ja") > 0 Then
                c.Shading.BackgroundPatternColor = wdColorRed
            ElseIf InStr(1, LCase(c.Range.Text), "nee") > 0 Then
                c.Shading.BackgroundPatternColor = wdColorGreen
            Else
                c.Shading.BackgroundPatternColor = wdColorWhite
            End If
        Next c
    End If
 
Beste OctaFish,

Bedankt voor de snelle reactie.
Ik heb hem geprobeerd, in het voorbeeld dat ik heb meegestuurd werkt het. echter in het document waar het voor nodig is niet.
Ik heb een pagina van het document bijgesloten.

deze macro heb ik nu:

Sub colourSelectedTable()
Dim c As Word.Cell
If Selection.Information(wdWithInTable) Then
For Each c In Selection.Tables(1).Range.Cells
If InStr(1, LCase(c.Range.Text), "Ja") > 0 Then
c.Shading.BackgroundPatternColor = wdColorRed
ElseIf InStr(1, LCase(c.Range.Text), "Nee") > 0 Then
c.Shading.BackgroundPatternColor = wdColorGreen
Else
c.Shading.BackgroundPatternColor = wdColorWhite
End If
Next c
End If
End Sub
 

Bijlagen

  • Report_test.docm
    40,8 KB · Weergaven: 48
Tja, als je de de code niet letterlijk overneemt, dan doet-ie het natuurlijk niet :).

Code:
    If Selection.Information(wdWithInTable) Then
        For Each c In Selection.Tables(1).Range.Cells
            If InStr(1, LCase(c.Range.Text), "ja") > 0 Then
                c.Shading.BackgroundPatternColor = wdColorRed
            ElseIf InStr(1, LCase(c.Range.Text), "nee") > 0 Then
                c.Shading.BackgroundPatternColor = wdColorGreen
            Else
                c.Shading.BackgroundPatternColor = wdColorWhite
            End If
        Next c
    End If

Overigens ga je nu een ander probleem tegenkomen :).
 
Ik heb de oplossing geprobeerd, inderdaad ontstaat er dan een ander probleem. heb het voor nu toch maar handmatig gedaan.
in elk geval bedankt voor de gedane reactie.
 
Ik verwachtte min of meer dat je voor het nieuwe probleem ook wel een oplossing had gewild :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan