Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aktive Zelle markieren von Hajo_Zi

Aktive Zelle markieren von Hajo_Zi
19.10.2005 10:59:35
Hajo_Zi
Hallo,
habe in der Recherche einen alten Code von Hajo_Zi gefunden, mit dem die aktive Zelle immer rot hinterlegt ist. Kann man diesen Code so ändern, dass beim deaktivieren eines Blattes die letzte markierte/aktive Zelle wieder auf den Ursprungshintergrund zurückgesetzt wird? Meine letzte Zelle ist immer ein Hyperlink, der leider immer die Farbe behält, was aber nicht erwünscht ist.
' **************************************************************
' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************
Option Explicit
' Erstellt von Hajo Ziplies 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


Private Sub Workbook_BeforeClose(Cancel As Boolean)
'   nach Hinweis von Peter Hasserodt Vergleich eingefügt
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 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
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_SheetDeactivate(ByVal Sh As Object)
'   nach Hinweis von Peter Hasserodt Vergleich eingefügt
If TypeName(ActiveSheet) = "Worksheet" Then
With Worksheets(ActiveSheet)
'       .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 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
Public OldColorIndex As Variant
Public OldRange As String
Public Register As String
Sub df()
End Sub
Gruß
Kira

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktive Zelle markieren
19.10.2005 12:46:06
Hajo_Zi
Hallo Kira,
ich habe jetzt nicht den Code getestet, aber ich bin der Auffassung das ist eingearbeitet. Lade doch mal die aktuelle Datei von meiner HP.
Link zur Datei
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: Aktive Zelle markieren
19.10.2005 12:59:54
Kira
Hallo Hajo,
danke für den Link. Die aktuelle Version funktioniert super! Hatte noch eine "etwas" ältere, da ging das noch nicht. Ist zwar jetzt etwas mehr Code, aber es läuft prima!
Merci!
Gruß
Kira
AW: Aktive Zelle markieren
19.10.2005 13:07:03
Hajo_Zi
Hallo Kira,
das mehr an Code ergibt sich auch dadurch das jetzt die Markierung abgeschaltet werden kann zum kopieren.
Auf meiner HP gibt es auch eine andere Lösung mittels Fadenkreuz im Bildschirmbereich.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Aktive Zelle markieren
19.10.2005 14:30:20
Kira
Hallo Hajo,
die Funktion mit dem Doppelklick werde ich nicht benötigen, so gesehen wird der Code auch wieder weniger. Ein Fadenkreuz bietet sich bei mir nicht an, da ich alle Blätter mit einem Blattschutz versehen habe und nur einzelne Zellen freigegeben sind. Für die paar Zellen ist eine einzige farbig markierte Zelle genau ideal. Die Kopierfunktion ist sowieso nur über eine Schaltfläche möglich.
Gruß
Kira

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige