Clever-Excel-Forum

Normale Version: Verschiebbarer Rahmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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