Liebes Forum,
hat wer mit folgendem Erfahrung?
Ich will - ähnlich wie bei einem Kalender - einen Rahmen erstellen.
Dabei sind in A1-G1 die Wochentage Mo-So. Sobald der Mo vorbei ist, geh ich auf A-Spalte und Ausblenden. Dann habe ich nur mehr B1-H1 (Di-Mo) zu sehen. Soweit so gut. Jetzt will ich gerne einen Rahmen haben, der immer genau eine Woche einrahmt. Geht das?
lg Dominik
Hallo Dominik,
im Prinzip ja, aber ich rate davon ab. Da ja nicht nur die aktuelle Woche eingerahmt werden muss, sondern auch sichergestellt werden muss, das bei allen anderen Zellen der Rahmen entfernt wird, wird das ein wenig rechenintensiv. Aber in einer kleinen Kalenderdatei wirst du es nicht merken.
Ich sehe zwei Möglichkeiten:
1. bedingte Formatierung
Wenn die entscheidende Bedingung über eine Formel abgefragt werden kann, könnte man das über bedingte Formatierungen lösen. In der Anlage einmal die Linke Seite eines gleitenden Rahmens.
Zusätzlicher Nachteil ist, dass ich die Strichstärke des Rahmens nicht beeinflussen kann.
2. über VBA:
hier muss auch die genaue Bedingung und das Ereignis, das eine Überarbeitung auslösen soll vorgegeben werden.
Hallo Dominik,
per VBA ginge so etwas:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim oS As Shape
Dim bS As Boolean
Dim rngV As Range
For Each oS In Me.Shapes
If oS.Name = "RahmenEineWoche" Then
bS = True
Exit For
End If
Next oS
If Not bS Then
Set oS = Me.Shapes.AddShape(msoShapeRectangle, 1, 1, 1, 1)
oS.Name = "RahmenEineWoche"
End If
Set rngV = ActiveWindow.VisibleRange.Cells(1)
With oS
.Line.Weight = 2.25
.Line.ForeColor.SchemeColor = 10 'rot
.Line.Visible = msoTrue
.Fill.Visible = msoFalse
.Top = rngV.Top
.Left = rngV.Left
.Width = rngV.Resize(, 7).Width
.Height = rngV.Height
End With
End Sub
Füge diesen Code in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes ein.
Gruß Uwe