Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hintergrundfarbe merken

Forumthread: Hintergrundfarbe merken

Hintergrundfarbe merken
12.05.2006 10:31:40
harald
Hallo,
ich habe untenstehenden Code bekommen, mit dem die eine best. Zelle markiert wird. Beim ändern der Textbox wird der Hintergrund wieder weiß und die nächste aktuelle Zelle bekommt einen anderen Hintergrund. Nun ist aber der Hintergrund nicht immer weiß, sondern auch mal grün oder rot, was im Programm eingestellt wird.
Wie kann ich nun erreichen, dass die ursprüngliche Hintergrundfarbe gemerkt und nach dem Wechsel wieder eingestellt wird?
Hier ist der bisherige code:

Private Sub Textbox_Change()
'Markiert die Zelle, die mit dem gesuchten Begriff beginnt
Dim Zelle As Range, Bereich As Range
With ActiveSheet
Set Bereich = .Range("A6:A" & .UsedRange.Row + .UsedRange.Rows.Count - 1)
End With
If Textbox.Value <> "" Then
For Each Zelle In Bereich
If LCase(Left(Zelle.Value, Len(Textbox.Value))) = LCase(Textbox.Value) Then
' erstes Auftreten der Zeichenfolge ohne Beachtung von Grossbuchstaben suchen)
Zelle.Activate
Bereich.Interior.ColorIndex = 2
'        Zelle.Interior.ColorIndex = 6
ActiveWindow.ScrollRow = Zelle.Row - 1
' scrollen zu Zeile über markierter Zeile
Textbox.Activate
Exit For
End If
Next Zelle
End If
End Sub

M.f.G.
Harald
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hintergrundfarbe merken
12.05.2006 14:49:18
Franz
Hallo Harald,
Makro kommt mir etwas bekannt vor :)
Damit die Farbmarkierungen auch dann noch funktionieren, wenn die Zellen verschiedene Farben haben und diese erhalten bleiben sollen, dann sind einige Anpassungen notwendig.
1. am Makro selbst:

Private Sub Textbox_Change()
'Markiert die Zelle, die mit dem gesuchten Begriff beginnt
Dim Zelle As Range, Bereich As Range
With ActiveSheet
Set Bereich = .Range("A6:A" & .UsedRange.Row + .UsedRange.Rows.Count - 1)
End With
If TextBox.Value <> "" Then
For Each Zelle In Bereich
If LCase(Left(Zelle.Value, Len(TextBox.Value))) = LCase(TextBox.Value) Then
' erstes Auftreten der Zeichenfolge ohne Beachtung von Grossbuchstaben suchen)
Zelle.Activate
'in vorheriger Zelle Farbe wieder herstellen
If Zeile > 0 Then
Cells(Zeile, "A").Interior.ColorIndex = Farbe
End If
Zeile = Zelle.Row 'Zeile merken
Farbe = Zelle.Interior.ColorIndex 'Farbe merken
Zelle.Interior.ColorIndex = 6 'Färbt gefundene Zelle gelb
ActiveWindow.ScrollRow = Zelle.Row - 1
' scrollen zu Zeile über markierter Zeile
TextBox.Activate
Exit For
End If
Next Zelle
End If
End Sub

2. In einem Modul
In einem Modul müssen die zwei Merker-Variablen als Public deklariert werden:
Public Zeile As Long, Farbe As Long

3.Unter "DieseArbeitsmappe"
Es muss ein Makro eingefügt werden, dass ggf. vor dem Schließen die Farbe der letzten markierten Zelle zurücksetzt.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Setzt ggf. in Tabelle xyz die Farbe der Zelle zurück
If Zeile > 0 Then
ThisWorkbook.Sheets("Test").Cells(Zeile, "A").Interior.ColorIndex = Farbe
End If
End Sub

Gruß
Franz
Anzeige
AW: Hintergrundfarbe merken
12.05.2006 19:44:19
harald
Hallo Franz,
leider komme ich erst am Montag in der Schule wieder an die Datei, werde es dann aber gleich einbauen und ausprobieren. Vielen Dank nochmals für deine Hilfe!
m.f.g.
Harald
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige