• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Word-VBA: Bedingte Formatierung in Tabelle

Mitglied seit
30.07.2000
Beiträge
4.626
Reaktionen
71
Servus,

ich bin leider ein totaler VBA-Newb und brauche deswegen Hilfe! Ich habe mir schon diversen Code aus Google-Ergebnissen zusammengeklaubt, komme aber nicht mehr weiter.
Was ich will, ist schnell erklärt: In der vierten Tabelle des Dokuments sollen die Spalten (3,5,7,...17,19 - jeweils ab Zeile 2) durchsucht werden. In den Zellen stehen Zahlen. Je nachdem in welchem Größenbereich die Zahl liegt, soll der Zellenhintergrund verschieden eingefärbt werden. Spalte 3 und Spalte 5 haben allerdings etwas andere Einf

Ich hab mir für eine einzelne Spalte Folgendes überlegt, das aber schonmal nicht läuft...
In Excel wäre das natürlich über die bedingte Formatierung gar kein Problem auch ohne VBA, aber es wäre schon sehr sehr fein, wenn ich es in Word hätte.
Code:
' Prozentränge_Spalte3 Makro
'
'


'Z1-Z5: oberster Wert der Leistungskategorie
'F1-F5: Farbe für die Kategorie (Wird aus einer vordefinierten,
'       nummerierten Farbtafel eingefügt. Jede Zahl steht für eine Farbe)
Dim tbl As Table
Dim col As Column
Dim ro As Row
Dim cel As Cell
Dim rng As Range
Dim i As Integer
Dim Z1, Z2, Z3, Z4, Z5, Z6 As Integer
Dim F1, F2, F3, F4, F5, F6 As String
Z1 = 5 'sehr schwach -> 0-5
F1 = 3 'rot

Z2 = 10 'schwach -> 6-10
F2 = 46 'orange

Z3 = 25 'unterdurchschnittlich -> 11-25
F3 = 44 'dunkelgelb

Z4 = 75 'durchschnittlich -> 26-75
F4 = 2 'weiß

Z5 = 95 'überdurchschnittlich -> 76-95
F5 = 43 ' gelbgrün

Z6 = 100 'ausgezeichnet -> 96-100
F6 = 4 'knallgrün


Set tbl = ActiveDocument.Tables(4) '******FEHLER!******
Set col = tbl.Columns(3)
For Each cel In col.Cells
Set rng = cel.Range
With rng
   If ActiveCell.Value <= Z1 Then         'Falls die Zelle in Kategorie 1,...
      ActiveCell.Interior.ColorIndex = F1 '...dann färbe die Zelle mit Farbe1...
   ElseIf ActiveCell.Value > Z1 And ActiveCell.Value <= Z2 Then 'Falls Zelle stattdessen in Kat 2,...usw.
      ActiveCell.Interior.ColorIndex = F2
   ElseIf ActiveCell.Value > Z3 And ActiveCell.Value <= Z3 Then
      ActiveCell.Interior.ColorIndex = F3
   ElseIf ActiveCell.Value > Z4 And ActiveCell.Value <= Z4 Then
      ActiveCell.Interior.ColorIndex = F4
   ElseIf ActiveCell.Value > Z5 And ActiveCell.Value <= Z5 Then
      ActiveCell.Interior.ColorIndex = F5
   Else
      ActiveCell.Interior.ColorIndex = F6
End If
End With
Next cel 
End Sub

Kann mir jemand helfen?
 
Zuletzt bearbeitet:
Oben