AW: Formatierungen der Zellen mit einer TextBox
07.12.2007 16:25:35
fcs
Hallo Bruce,
per Textbox-Eingabe die bedingte Formatierung eines Bereiches zu ändern ist leider nicht trivial.
Folgender Code funktioniert unter EXCEL 2003. Ich hab auch mal deinen mit Excel 2007 aufgezeichneten Code für die LostFocus-Prozedur angepasst, weiss aber nicht ob er läuft.
Den Code muss du im VBA-Editor unter dem entsprechenden Tabellenblatt einfügen.
Der Code merkt sich immer den aktuell selektierten Zellbereich. Wird die Textbox gewählt (bekommt den Focus), dann wird das Merken des Zellenbereiches per Variable boBox blockiert.
Wenn nach der Eingabe des Suchbegriffs wieder eine Zelle in der Tabelle selektiert wird, dann wird die bedingte Formatierung neu gesetzt und das Merken des selektierten Bereichs wieder freigegeben.
Gruß
Franz
Private rngBereich As Range, boBox As Boolean
Private Sub TextBox1_GotFocus()
boBox = True
End Sub
'Textbox-Code für Excel 2003
Private Sub TextBox1_LostFocus()
With rngBereich
.Range("a1").Select
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=WENN(SUCHEN(""" & Me.TextBox1.Value & """;" & _
Replace(rngBereich.Range("a1").Address, "$", "") & ";1);WAHR;FALSCH)"
With .FormatConditions(1).Interior
.Pattern = xlNone
End With
End With
boBox = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If boBox = False Then
Set rngBereich = Selection
End If
End Sub
'Textbox-Code für Excel 2007 ?
Private Sub TextBox1_LostFocus()
With rngBereich
.Range("a1").Select
.FormatConditions.Delete
.FormatConditions.Add Type:=xlTextString, String:=Me.TextBox1.Value, _
TextOperator:=xlContains
.FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.Pattern = xlNone
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
End With
boBox = False
End Sub