Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe bei Workbook_SheetSelectionChange

Hilfe bei Workbook_SheetSelectionChange
02.12.2006 21:31:02
Peter
Hallo Excelfreunde
aus dem Forum habe ich eine Code von Hajo gefunden, mit dem ich die aktive Zelle färben kann.
Da einige Zellen gesperrt sind, funktioniert der Code nicht.
Es kommt die Meldung:
Fehler beim Kompilieren / Variabele nicht definiert.
Und zwar bei "Old Range"
Ich vermute das der Code die "Alte Hintergrundfarbe" der zelle nicht kennt.
Wie kann ich das ändern.
Oder wie dem Code sagen welche Farbe die Zellen haben.
Hier der Code von Hajo:

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

Gruß Dieter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Workbook_SheetSelectionChange
02.12.2006 21:48:10
Jan
Hi,
die Variablen müssen im Deklarationsteil des Klassenmoduls deklariert werden.
mfg Jan
AW: Hilfe bei Workbook_SheetSelectionChange
02.12.2006 21:49:50
Peter
Hallo Excelfreund
Ok, aber meine Frage ist wie mache ich das.?
Kannst du helfen.
Gruß Dieter
AW: Hilfe bei Workbook_SheetSelectionChange
02.12.2006 21:53:39
Jan
Hi,
Dim OldRange as String
Dim OldColorIndex as Integer

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

mfg Jan
Anzeige
AW: Hilfe bei Workbook_SheetSelectionChange
02.12.2006 21:59:51
Peter
Hallo Excelfreund
muss ich meinen Code durch diesen komplett ersetzen.
Gruß Dieter
AW: Hilfe bei Workbook_SheetSelectionChange
02.12.2006 22:03:12
Jan
Hi,
wenn der von dir gepostete Code alles ist, brauchst du nur diese beiden
Deklarationen ganz oben, noch vor der Sub zu platzieren.
Dim OldRange as String
Dim OldColorIndex as Integer
mfg Jan
klappt
02.12.2006 22:01:46
Peter
Hallo Excelfreund
es klappt.
Danke für deine Hilfe.
Gruß Dieter
AW: klappt
02.12.2006 22:16:16
Peter
Hallo Excelfreund
ich habe mich zu früh gefreut. :-()
Jetzt habe ich Probleme beim öffnen der Datei:
Beim öffnen von "Workbook_Open()" kommt die Meldung "Register"
' 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 = 8
Protect "Test"
End With
End If
Beim wechseln der Tabellen "Workbook_SheetDeactivate" kommt die Meldung "Register"
' 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
Kannst du mir hierbei Helfen.
Gruß Dieter
Anzeige
AW: klappt
02.12.2006 22:22:55
Jan
Hi,
Deklariere die Variable Register auf identische Weise als String.
mfg Jan
AW: klappt
02.12.2006 22:43:50
Peter
Hallo Excelfreund
auch das klappt wunderbar.
Wie kann ich jetzt bei "Workbook_SheetDeactivate" oder "Workbook_BeforeClose" erreichen das auf die "Alte Farbe" der Zellen zurück geschaltet wird.
Die Zellen sind Weiß (Ich glaube Nr. 2)
Wenn ich jetzt die Mappe schliesse bleibt die aktualle Zelle beim öffnen auf "ColorIndex = 4" stehen.
Kannst du mir hierbei helfen.
Gruß Dieter
geschlossen
03.12.2006 15:41:04
Peter
OT
Dieter

104 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige