Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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
Inhaltsverzeichnis

An Ransi (oder andere), Frage zu deinem Code

An Ransi (oder andere), Frage zu deinem Code
Holger
Hallo Ransi,
nochmal Danke für deinen Code.
Zur Erinnerung: wird eine Zelle im Rangebereich H:J ausgewählt, wird dieses
plus die Zelle aus A gelb gefärbt.
Das funktioniert soweit ganz gut, nur wenn der User danach in eine andere Zelle klickt,
die nicht im Rangebereich liegt, bleibt die Färbung erhalten und genau das möchte ich noch ändern.
Nur wie, weiß ich nicht genau, weil ja die Information welche Zellen gefärbt wurden,
beim nächsten KLick schon wieder weg ist!?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static OldIndexA As Integer
Static OldIndexH_J As Integer
Static OldCellA As Range
Static OldCell As Range
If Intersect(ActiveCell, Range("H:J")) Is Nothing Then Exit Sub
'Rangebereich festlegen auf Spalte H, I und J
'Immer die Zelle der Spalte A mitfärben
'Zwischen Target und Spalte A Rahmen färben
On Error Resume Next
OldCell.Interior.ColorIndex = OldIndexH_J
OldCellA.Interior.ColorIndex = OldIndexA
If Not OldCell Is Nothing Then
OldIndexH_J = ActiveCell.Interior.ColorIndex
OldIndexA = Range("A" & ActiveCell.Row).Interior.ColorIndex
End If
ActiveCell.Interior.ColorIndex = 6
Range("A" & ActiveCell.Row).Interior.ColorIndex = 6
Set OldCell = ActiveCell
Set OldCellA = Range("A" & ActiveCell.Row)
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: An Ransi (oder andere), Frage zu deinem Code
14.10.2010 11:49:36
Gerold
Hallo
Wie wärs damit?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static OldIndexA As Integer
Static OldIndexH_J As Integer
Static OldCellA As Range
Static OldCell As Range
On Error Resume Next
If Intersect(ActiveCell, Range("H:J")) Is Nothing Then
OldCell.Interior.ColorIndex = OldIndexH_J
OldCellA.Interior.ColorIndex = OldIndexA
Exit Sub
Else
'Rangebereich festlegen auf Spalte H, I und J
'Immer die Zelle der Spalte A mitfärben
'Zwischen Target und Spalte A Rahmen färben
OldCell.Interior.ColorIndex = OldIndexH_J
OldCellA.Interior.ColorIndex = OldIndexA
If Not OldCell Is Nothing Then
OldIndexH_J = ActiveCell.Interior.ColorIndex
OldIndexA = Range("A" & ActiveCell.Row).Interior.ColorIndex
End If
End If
ActiveCell.Interior.ColorIndex = 6
Range("A" & ActiveCell.Row).Interior.ColorIndex = 6
Set OldCell = ActiveCell
Set OldCellA = Range("A" & ActiveCell.Row)
End Sub
Mfg Gerold
Anzeige
Klappt, aber warum?
14.10.2010 11:54:55
Holger
Hallo Gerold,
Danke für deinen Code, der anscheinend wunderbar funktioniert.
Ich verstehe nur nicht so genau, warum er funktioniert.
Wenn nicht in den Rangebereich geklickt wird, ist doch OldIndexH_J resp A unbekannt?
Ich verstehe irgendwie nicht, wie das Makro funktioniert.
Falls du mir da noch auf die Sprünge helfen könntest, wäre schön, denn
ich will unbedingt verstehen was ich benutze.
OldCell.Interior.ColorIndex = OldIndexH_J
OldCellA.Interior.ColorIndex = OldIndexA
Gruß
Holger
AW: Klappt, aber warum?
14.10.2010 13:19:49
Gerold
Hallo Holger
Das liegt an der Static-Anweisung der Variablen
siehe auch Excel Hilfe
Static-Anweisung (Beispiel)
In diesem Beispiel wird die Static-Anweisung verwendet, um den Wert einer Variablen während der gesamten Laufzeit des Moduls zu speichern.
Sub test()
SummeSpeichern 1
End Sub

Function SummeSpeichern(Zahl)
' Nur die Variable Aufsummieren behält ihren Wert zwischen
' Funktionsaufrufen bei.
Static Aufsummieren As Integer
Aufsummieren = Aufsummieren + Zahl
SummeSpeichern = Aufsummieren
End Function
Mfg Gerold
Anzeige
AW: Klappt, aber warum?
14.10.2010 13:20:33
Gerold
Hallo Holger
Das liegt an der Static-Anweisung der Variablen
siehe auch Excel Hilfe
Static-Anweisung (Beispiel)
In diesem Beispiel wird die Static-Anweisung verwendet, um den Wert einer Variablen während der gesamten Laufzeit des Moduls zu speichern.
Sub test()
SummeSpeichern 1
End Sub

Function SummeSpeichern(Zahl)
' Nur die Variable Aufsummieren behält ihren Wert zwischen
' Funktionsaufrufen bei.
Static Aufsummieren As Integer
Aufsummieren = Aufsummieren + Zahl
SummeSpeichern = Aufsummieren
End Function
Mfg Gerold
Anzeige
Groschen gefallen, DANKE!
14.10.2010 17:54:43
Holger
Hallo Gerold,
verstehe, das kannte ich noch gar nicht.
Danke für deine Erklärung und das TestMakro!
Gruß
Holger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige