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

ActiveCell

ActiveCell
27.01.2003 18:53:20
Felix
Hallo,
wie muß das aussehen, wenn die aktive Zelle rot sein soll und wenn sie nicht mehr den Focus hat wieder xlNone.

Habe schon versuche in Worksheet_SelectionChange gestartet aber kein Erfolg.

wie muß solch ein "If Then Code" aussehen?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Target.Interior.Color = 3 'wenn Focus
Target.Interior.Color = xlNone 'wenn kein Focus mehr

End Sub

gruß
Felix


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: ActiveCell markieren
27.01.2003 19:00:24
Hajo_Zi
Hallo Felix

mir scheint das siehst Du zu einfach. Bei folgenden Code wird die aktive Zelle rot markiert und beim Wechsel wird die alte Farbe wieder hergestellt. Das Problem bei dem Code ist das ein kopieren der Zellen nicht mehr möglich ist. Aus diesem Grunde habe ich noch Code eingefügt der bei Doppelklick die markierung ausschaltet und beim nächsten Doppelklick wird es wieder eingeschaltet.


' **************************************************************
' 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

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß hajo

Anzeige
Re: ActiveCell markieren
27.01.2003 19:07:39
Felix
Hallo Hajo,

Das ist mir eine Nummer zu aufwendig. Ich dachte ich hätte mal etwas einfacheres gesehen. Weiß leider nur nicht mehr wo. (Eventuell habe ich das auch in falscher Erinnerung.)

In dem Fall ist mir das etwas zu viel Aufwand.

Trotzdem vielen Dank

Gruß
Felix


Re: ActiveCell markieren
27.01.2003 19:11:14
Hajo_Zi
Hallo Felix

falls es ohne Farbe reicht und aktuelle Zeile. In DieseArbeitsmappe

Gruß hajo

Re: ActiveCell
27.01.2003 20:14:32
L.Vira
Suchst du noch weiter nach einer Lösung?
Re: ActiveCell markieren
27.01.2003 20:49:04
Felix
Hallo,
vielen Dank Euch beiden habe jetzt auch in Bernd Held seinem Buch diesen Code gefunden.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static Zelle As Range
If Not Zelle Is Nothing Then
Zelle.Interior.ColorIndex = xlNone
End If
Target.Interior.ColorIndex = 6
Set Zelle = Target
End Sub

Gruß
Felix

Anzeige
Re: ActiveCell markieren
27.01.2003 21:02:38
L.Vira
Da bleibt nur immer eine Zelle farbig, die ursprünglich nicht farbig war. Aber wenn dir das nix ausmacht?
Re: ActiveCell markieren
27.01.2003 21:08:49
Felix
Hallo L.Vira,

das verstehe ich nicht.

Ich wollte das immer die aktive Zelle farbig ist.

Wenn die Zelle nicht mehr aktiv ist, wird die Farbe wieder zurückgesetzt.

So sollte es eigentlich sein und dieser Code macht das auch so, da bleibt doch keine weitere Zelle außer der aktiven farbig.

Was hast Du denn noch in Petto?

Gruß
Felix

Re: ActiveCell markieren
27.01.2003 21:10:19
Hajo_Zi
Hallo Felix

schließe die Datei, öffne sie und wähle eine andere Zelle

Gruß Hajo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige