In Projekt-Statusberichten wird häufig ein Gesamtstatus erwartet, der auf den ersten Blick als Ampel-Status ins Auge fallen soll. In Excel ist dies relativ einfach zu bewerkstelligen, in Word-Dokumenten schon ein Stückchen schwieriger. Je nachdem, ob man es mit Sonderzeichen oder als Zeichnungselemente umsetzt, bleibt die weitere Status-Pflege umständlich. Ein bisschen Makro-Programmierung bringt Abhilfe, so kann es aussehen:
klick, klick, klick,...
Hier eine mögliche Lösung:
1. Anlegen zweier Makros ("AmpelEinfuegen" und "AmpelSchalten"):
Sub AmpelEinfuegen()
Dim shp As Word.Shape
Set shp = ActiveDocument.Shapes.AddShape(Type:=msoShapeOval, _
Left:=0#, Top:=0#, Width:=20#, Height:=20#, _
Anchor:=ActiveDocument.Range(Start:=Selection.Start, _
End:=Selection.End))
With shp
.Fill.ForeColor = wdColorRed
.Name = "Rot"
End With
Set shp = ActiveDocument.Shapes.AddShape(Type:=msoShapeOval, _
Left:=20#, Top:=0#, Width:=20#, Height:=20#, _
Anchor:=ActiveDocument.Range(Start:=Selection.Start, _
End:=Selection.End))
With shp
.Fill.ForeColor = wdColorYellow
.Name = "Gelb"
End With
Set shp = ActiveDocument.Shapes.AddShape(Type:=msoShapeOval, _
Left:=40#, Top:=0#, Width:=20#, Height:=20#, _
Anchor:=ActiveDocument.Range(Start:=Selection.Start, _
End:=Selection.End))
With shp
.Fill.ForeColor = wdColorBrightGreen
.Name = "Gruen"
End With
End Sub
Sub AmpelSchalten()
With ActiveDocument.Shapes
Debug.Print .Item("Rot").Visible
If .Item("Rot").Fill.Transparency = 0 And _
.Item("Gelb").Fill.Transparency = 0 And _
.Item("Gruen").Fill.Transparency = 0 Then
.Item("Gelb").Fill.Transparency = 1
.Item("Gruen").Fill.Transparency = 1
ElseIf .Item("Rot").Fill.Transparency = 0 And _
.Item("Gelb").Fill.Transparency = 1 And _
.Item("Gruen").Fill.Transparency = 1 Then
.Item("Rot").Fill.Transparency = 1
.Item("Gelb").Fill.Transparency = 0
ElseIf .Item("Rot").Fill.Transparency = 1 And _
.Item("Gelb").Fill.Transparency = 0 And _
.Item("Gruen").Fill.Transparency = 1 Then
.Item("Gelb").Fill.Transparency = 1
.Item("Gruen").Fill.Transparency = 0
ElseIf .Item("Rot").Fill.Transparency = 1 And _
.Item("Gelb").Fill.Transparency = 1 And _
.Item("Gruen").Fill.Transparency = 0 Then
.Item("Gruen").Fill.Transparency = 1
.Item("Rot").Fill.Transparency = 0
End If
End With
End Sub
2. Einmalig den Makro "AmpelEinfuegen" an der gewünschten Position ausführen.
3. Einfügen eines MakroButton-Feldes oder einer Steuer-Schaltfläche (CommandButton) über die Steuerflächen-Toolbox und Verknüpfen dieses Buttons mit dem Makro "AmpelSchalten".
Thats it!
P.S.: Zur Ausführung des Makros muss in MS Office der Makro-Sicherheitsstufe auf "Mittel" gesetzt werden, ansonsten wäre es nur als signiertes Makro ausführbar.

Letzte Kommentare