Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
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

Zeilen, Spalten markieren

Zeilen, Spalten markieren
18.06.2009 09:40:22
Gregor
Hallo
Im Forum habe ich folgendes Makro gefunden und auf meine Bedürfnisse angepasst.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range(Cells(1, 1), Cells(100, 100)).Interior.ColorIndex = xlNone
Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Interior.ColorIndex = 19
Range(Cells(3, Target.Column), Cells(Target.Row, Target.Column)).Interior.ColorIndex = 19
End Sub


Nun arbeite ich aber in meiner Tabelle mit Zell-Farben, die nicht gelöscht werden dürfen. Es würde auch genügen, die Zeilen, Spalten nur zu markieren (select), aber mit dem Befehl Select anstelle von Interior.ColorIndex = 19 funktioniert es nicht.
Kurz: Nach der Markierung müssen immer wieder die ursprünglichen Zell-Farben vorhanden sein.
Geht das und wie?
Danke und Gruss
Gregor

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen, Spalten markieren
18.06.2009 09:54:56
Andi
Hi,
das geht mit Select, allerdings sind dann zwei Dinge zu beachten.
1. Wenn Du innerhalb der Selection-Change-Routine ein Select ausführst, dann ruft sich die Routine selbst erneut auf und kommt so in eine Endlosschleife. Lösung: Für die Laufzeit der Routine die Ereignisse mit Application.EnableEvents = False ausschalten.
2. Jede Select-Anweisung hebt eine vorherige Markierung auf; Du musst also die Markierung der senkrechten und waagerechten Zellen mittels Union in eine Anweisung zusammenfassen, sonst sind am Ende nur die senkrechten markiert.
Fertig sieht das ganze dann zB so aus:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Union(Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)), Range(Cells(3, Target. _
Column), Cells(Target.Row, Target.Column))).Select
Application.EnableEvents = True
End Sub


Schönen Gruß,
Andi

Anzeige
Danke
18.06.2009 09:57:56
Gregor
Danke Andi
Das ist perfekt, danke auch für den Hinweis.
Gruss Gregor
gern geschehen... (ot)
18.06.2009 10:04:30
Andi
.
AW: andere Variante
18.06.2009 10:12:00
hary
Hi Gregor
mit Rahmen

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range(Cells(1, 1), Cells(100, 100)).Borders.LineStyle = xlNone
Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).BorderAround (1)
Range(Cells(3, Target.Column), Cells(Target.Row, Target.Column)).BorderAround (1)
End Sub


Gruss Hary

AW: andere Variante
18.06.2009 10:39:23
Gregor
Hallo Hary
Auch eine interessante Variante, vielen Dank.
Gregor

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige