Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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
VBA -active Zelle/Zeile farbig hervorheben
03.10.2016 15:51:51
Andreas
Hallo, wie kann ich mit VBA in einer Tabelle die wirklich aktive Zeile / Zelle in
gelb ( RGB 255/255/153) anzeigen?
Z.B. befinde ich mich in Zeile 15, Spalte C .
Wenn dort mit Doppelklick meine Userform geöffnet wird- soll sich die aktive Zeile im Bereich von B-N farbig sich abheben.
Kann gleichzeitig die wirklich aktive Zelle, die derzeit aktiv bearbeitet wird in grün ( RGB 184/251/95) farbig hinterlegt werden.
Springe ich nach unten- soll die Zeile im vorherigen Bereich wieder farblos werden und die nun aktive Zeile so farbig dargestellt werden.
Ist sowas möglich?
Habe da noch sehr wenig Erfahrung. Aller Anfang ist schwer.
Wo füge ich welchen VBA Code ein?
Soll ich dazu ein neues Modul mit Option Explicit erstellen?
Vielleicht kann wer helfen?
Danke im voraus.
Andreas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA -active Zelle/Zeile farbig hervorheben
03.10.2016 17:03:58
Daniel
Hi
zum markiern der aktiven Zelle und Zeile würde ich die Bedingte Formatierung nutzen.
das hat den Vorteil, dass du die Originialformate nicht löscht und diese automatisch wieder auftauchen, wenn du eine andere Zelle markierst.
gehe so vor:
schreibe in das Modul des Tabellenblatts diesen Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1").Value = ActiveCell.Row
Range("B1").Value = ActiveCell.Column
End Sub

dieser Code scheibt die Zeilennummer der aktiven Zelle in die Zelle A1 und die Spaltennummer in die Zelle B1 (du kannst natürlich auch jede andere freie Zelle verwenden)
markiere jetzt die Spalten B-N und lege für sie diese Beiden Bedingten Formatierungen an, jeweils mit Formel als Regel:
Farbe Gelb: =Und(Zeile()=$A$1;Spalte()$B$1)
Farbe Grün: =Und(Zeile()=$A$1;Spalte()=$B$1)
Gruß Daniel
Anzeige
Empfehle, die Koordinaten nicht in eine Zelle, …
03.10.2016 17:15:14
Luc:-?
…sondern in eine benannte Konstante, auf die die BedingtFormat-Regel zugreift, zu schreiben, Daniel & Andreas!
Gruß, Luc :-?
Besser informiert mit …
AW: Empfehle, die Koordinaten nicht in eine Zelle, …
03.10.2016 18:08:29
Andreas
Danke erst mal- weiß nicht ob es was hilft- füge erst mal noch folgendes Modul ein-
Diese 3 Code verwende ich, um die Spalte A vor der Bearbeitung farbig zu kennzeichnen. Während der Bearbeitung der Zellen ändert sich die Farbe in der erledigten Spalte A auf grün und am Schluß führe ich die CMD Fertig aus und es wird alles farbige in der Spalte A wieder farblos.
Meine Startspalte ist immer C.
Nun wollte ich eben den Code erweitern, um die Zeile in der ich mich befinde- mit eben einen helleren gelb nochmals optisch aufleben lass. Der Zeilebereich beginnt von B und endet bei N.
Ich möchte auch nicht all zu viel zerstören.
Ein Code den ich an meinen Anfügen könnte, wäre nett.
Den Code von Daniel probiere ich noch aus- nur A1 und B1 bringt mir bestimmt einiges durcheinander. Habe ja auch noch nicht so den Durchblick- bei meinen Kenntnissen.
Danke erst mal.
Gruß Andreas

Option Explicit
Sub gelb_für_Bearbeiten() 'markiert die zu Bearbeiteten Zeilen in der Spalte A für eine Optik
Dim i&
i = 19
Do
If (i Mod 49)  1 Then
Range("A" & i).Interior.Color = vbYellow
i = i + 1
Else
i = i + 19
End If
Loop While i  1 Then
Range("A" & i).Interior.Color = vbYellow
i = i + 1
Else
i = i + 19
End If
Loop While i  1 Then
Range("A" & i).Interior.ColorIndex = xlNone
i = i + 1
Else
i = i + 19
End If
Loop While i 

Anzeige
benannte Konstante
03.10.2016 19:18:51
Andreas
und wie könnte der Code dann aussehen? Luc?
Da steh ich bestimmt auf dem Schlauch!
AW: Empfehle, die Koordinaten nicht in eine Zelle, …
03.10.2016 20:06:16
Daniel
du musst ja nicht A1 und B1 nehmen, du kannst auch jede andere freie Zelle (ein Excelblatt hat genügend davon) verwenden.
die Zellen können auch auf einem anderen Tabellenblatt liegen.
Du musst halt nur im Code die gleichen Zellen verwenden wie in der Bedingten Formatierung.
Gruß Daniel
AW: VBA -active Zelle/Zeile farbig hervorheben
03.10.2016 19:32:28
ChrisL
Hi Andreas
A1 und B1 können genauso gut X1 und Y1 sein (die Spalten kannst du ausblenden).
Da dein Code auf Spalte A wirkt (übrigens Fehler grün = yellow), und die Bedingte Formatierung auf B-N, sollten sich die Zwei nicht in die Quere kommen.
Wenn ich Luc richtig verstehe, lautet die Empfehlung über den Namensmanager den beiden Zellen einen Namen zu geben (ansonsten korrigiere mich bitte, in eine benannte Konstante könnte man auch als public Variable interpretieren?).
Den Vorteil für einen Namen würde ich sehen, z.B. wenn du die zwei Zellen auf ein Hilfsblatt verbannst.
Worksheets("Hilfsblatt").Range("EinName1").Value = ActiveCell.Row
Worksheets("Hilfsblatt").Range("EinName2").Value = ActiveCell.Row
=Und(Zeile()=EinName1;Spalte()EinName2)
Worauf ich aber hauptsächlich hinweisen wollte. Wenn die Aktion schon mit einem Before_DoubleClick Ereignis verbunden ist, dann kannst du dir den Umweg über die Zellen sparen. Target wäre m.E. zwangsweise die aktive Zelle.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range(Cells(Target.Row, 2), Cells(Target.Row, 14)).Interior.Color = vbYellow
End Sub
Farbe zurück setzen (am einfachsten alle Zeilen auf einmal) wenn das Userform geschlossen wird.
Unklar ist mir, wie sich die aktive Zelle ändert. Entweder hast du die Userform Eigenschaft ShowModal = False, dann wäre vermutlich doch die Lösung von Daniel der richtige Ansatz.
Oder, so meine Vermutung, die Userform Interaktion z.B. Listbox ändert die aktive Zelle. Dann könnte man den Code dort mit rein packen.
Auf alle Fälle würde ich versuchen dieses Worksheet_SelectionChange Ereignis zu vermeiden. Man kann es zwar machen (abhängig von der Ausgangslage/Anforderung auch richtig), aber es wird bei jedem Klick in der Tabelle im Hintergrund etwas geschrieben, was ich suboptimal finde.
Worksheet_... Codes müssen ins Modul der betreffenden Tabelle. Im Gegensatz zu deinem bestehenden Code, der in ein Standardmodul soll.
cu
Chris
Anzeige
AW: VBA -active Zelle/Zeile farbig hervorheben
03.10.2016 22:09:18
Andreas
Danke Chris, Daniel, Luc
Ich interpretiere das ebenfalls so- ich teste das mal mit den Hilfstabellen. Gute Idee.
Ja, Chris deine Vermutung, das springen zur nächsten Spalte C übernimmt die Userform.
Private Sub CommandButton19_Click()
Dim z As Long
Dim r As Long
Range(TextBox19.Value) = TextBox17.Value
Range(TextBox15.Value) = TextBox16.Value
' ich kommentiere das mal aus...
'z = Cells(ActiveCell.Row, "A")               'aktuelle Lfd. Nr
'r = ZeilenNr(z + 1)                          'zutreffende Zeilen# der nächsten Lfd. Nr
'Cells(r, ActiveCell.Column).Select           'auf nächste Zeile positionieren
' ... weil das so gedacht war:
Cells(ActiveCell.Row, 1).Interior.Color = vbGreen ' erst das Grün
If (ActiveCell.Row Mod 49)  0 Then
ActiveCell.Offset(1).Select
Else
ActiveCell.Offset(20).Select
End If
UserForm_Initialize ' das lädt einfach die Variablen nach - wozu eigentlich?
End Sub
Danke erst mal.
Grüße Andreas
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige