Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
256to260
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ausgewählte Zelle anders einfärben!

ausgewählte Zelle anders einfärben!
14.05.2003 16:49:44
Holger
Hallo Excel-Team!

Habe schon in der Recherche gestöbert aber bisher noch nichts gefunden.
Problem:
Im Arbeitsblatt soll die ausgewählte Zelle (durch Maus oder Cursortasten) anders eingefärbt werden (Zelle oder auch die Zeile). Beim verlassen (in eine andere Zelle) soll der Ursprungszustand wieder hergestellt werden (Hintergrund-Farbe).

Der nachfolgende Code (im Forum gefunden) funtioniert nicht bei einfärbten Blättern:
Dim ranAltBereich As Range
Dim lngColorIndex(1 To 256) As Long
Dim bolDynMauszeiger As Boolean

Sub MarkierungEin(ByVal Target As Excel.Range)
Dim ranZelle As Range
Dim x As Integer

If bolDynMauszeiger = False Then Exit Sub

If Not ranAltBereich Is Nothing Then
x = 0
On Error Resume Next

For Each ranZelle In ranAltBereich
x = x + 1
ranZelle.Interior.ColorIndex = lngColorIndex(x)
Next

End If

Set ranAltBereich = _
Range("A" & Target.Row & ":IV" & Target.Row)
x = 0

For Each ranZelle In ranAltBereich
x = x + 1
lngColorIndex(x) = _
ranZelle.Interior.ColorIndex
Next

Target.EntireRow.Interior.Color = RGB(255, 255, 200)

End Sub

Sub MarkierungAus()
Dim x As Integer
Dim ranZelle As Range

If Not ranAltBereich Is Nothing Then
x = 0

For Each ranZelle In ranAltBereich
x = x + 1
ranZelle.Interior.ColorIndex = lngColorIndex(x)
Next

End If
End Sub

Sub MauszeigerEinschalten()
bolDynMauszeiger = True
End Sub

Für einen kleinen Tip wäre ich dankbar!

Holger

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

Betreff
Datum
Anwender
Anzeige
Re: ausgewählte Zelle anders einfärben!
14.05.2003 18:07:20
Forum
Hallo Holger

für die Zelle


' **************************************************************
' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit
' erstell von Hajo.Ziplies@web.de 14.12.02
' der Code ist nur für eine Zelle vorgesehen
' sollten mehere Zellen markiert werden geht die Farbformatierung verloren
' Farbformatierungen während der Selektion bleiben erhalten, außer rot
' Abschalten durch Doppelklick
Dim Aktion As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
' nach Hinweis von Peter Hasserodt Vergleich eingefügt
If Aktion = True Then Exit Sub
If TypeName(ActiveSheet) = "Worksheet" Then
With ActiveSheet
' .Unprotect "Test"
If OldRange <> "" Then .Range(OldRange).Interior.ColorIndex = OldColorIndex
' .Protect "Test"
End With
End If
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
' falls Farbe beim Druck wieder zurückgestellt werden soll
' nach Druck ist die aktuelle Zelle nicht markiert
' nach Hinweis von Peter Hasserodt Vergleich eingefügt
If Aktion = True Then Exit Sub
If TypeName(ActiveSheet) = "Worksheet" Then
With ActiveSheet
' .Unprotect "Test"
If OldRange <> "" Then .Range(OldRange).Interior.ColorIndex = OldColorIndex
' .Protect "Test"
End With
End If
End Sub

Private Sub Workbook_Open()
' nach Hinweis von Peter Hasserodt Vergleich eingefügt
If TypeName(ActiveSheet) = "Worksheet" Then
OldRange = ActiveCell.Address
Register = ActiveSheet.Name
OldColorIndex = ActiveCell.Interior.ColorIndex
With ActiveSheet
' .Unprotect "Test"
ActiveCell.Interior.ColorIndex = 3
' .Protect "Test"
End With
End If
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
' nach Hinweis von Peter Hasserodt Vergleich eingefügt
Aktion = False
If TypeName(ActiveSheet) = "Worksheet" Then
OldRange = ActiveCell.Address
OldColorIndex = ActiveCell.Interior.ColorIndex
With ActiveSheet
' .Unprotect "Test"
ActiveCell.Interior.ColorIndex = 3
' .Protect "Test"
End With
Register = ActiveSheet.Name
End If
End Sub

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Aktion = Not Aktion
If Aktion = True Then
If TypeName(ActiveSheet) = "Worksheet" Then
With Worksheets(Register)
' .Unprotect "Test"
If OldRange <> "" Then .Range(OldRange).Interior.ColorIndex = OldColorIndex
' .Protect "Test"
End With
End If
Else
If TypeName(ActiveSheet) = "Worksheet" Then
With ActiveSheet
' .Unprotect "Test"
' Beim 1. Aufruf ist OldRange noch undefiniert
If OldRange = "" Then
OldRange = Target.Address
OldColorIndex = Target.Interior.ColorIndex
' Setze Hintergrundfarbe der aktiven Selection auf Rot
Target.Interior.ColorIndex = 3
Else
' Setze alten Range auf alte Farbe
If Range(OldRange).Interior.ColorIndex = 3 Then
Range(OldRange).Interior.ColorIndex = OldColorIndex
End If
OldColorIndex = Target.Interior.ColorIndex
' Merke mir aktuellen Adresse für nächsten Aufruf
OldRange = Target.Address
' Setze Hintergrundfarbe der aktiven Selection auf Rot
Target.Interior.ColorIndex = 3
End If
' .Protect "Test"
End With
End If
End If
Cancel = True
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
' nach Hinweis von Peter Hasserodt Vergleich eingefügt
If Aktion = True Then Exit Sub
If TypeName(ActiveSheet) = "Worksheet" Then
With Worksheets(Register)
' .Unprotect "Test"
If OldRange <> "" Then .Range(OldRange).Interior.ColorIndex = OldColorIndex
' .Protect "Test"
End With
End If
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
' nach Hinweis von Peter Hasserodt Vergleich eingefügt
If Aktion = True Then Exit Sub
If TypeName(ActiveSheet) = "Worksheet" Then
With ActiveSheet
' .Unprotect "Test"
' Beim 1. Aufruf ist OldRange noch undefiniert
If OldRange = "" Then
OldRange = Target.Address
OldColorIndex = Target.Interior.ColorIndex
' Setze Hintergrundfarbe der aktiven Selection auf Rot
Target.Interior.ColorIndex = 3
Else
' Setze alten Range auf alte Farbe
If Range(OldRange).Interior.ColorIndex = 3 Then
Range(OldRange).Interior.ColorIndex = OldColorIndex
End If
OldColorIndex = Target.Interior.ColorIndex
' Merke mir aktuellen Adresse für nächsten Aufruf
OldRange = Target.Address
' Setze Hintergrundfarbe der aktiven Selection auf Rot
Target.Interior.ColorIndex = 3
End If
' .Protect "Test"
End With
End If
End Sub


' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************

Option Explicit
' erstell von Hajo.Ziplies@web.de
Public OldColorIndex As Variant
Public OldRange As String
Public Register As String

Code eingefügt mit: Excel Code Jeanie

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Anzeige
Re: ausgewählte Zelle anders einfärben!
14.05.2003 18:15:43
Klaus-Dieter
Hallo Holger,

versuch es mal so:


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Range("A1:D20").Interior.ColorIndex = 15 ' Allgemeiner Hintergrund Farbe hellgrau
ActiveCell.Interior.ColorIndex = 3 ' Aktive Zelle Farbe rot
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Klaus-Dieter
Klaus-Dieter's Excel und VBA Seite

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige