Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA -active Zelle/Zeile farbig hervorheben

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
Anzeige

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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Aktive Zelle und Zeile farbig hervorheben in Excel


Schritt-für-Schritt-Anleitung

Um die aktive Zelle und die aktive Zeile in Excel farbig hervorzuheben, kannst du sowohl VBA als auch bedingte Formatierungen nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. VBA-Code einfügen:

    • Öffne das VBA-Editor-Fenster mit ALT + F11.
    • Wähle die entsprechende Tabelle im Projekt-Explorer aus.
    • Füge den folgenden Code in das Modul der Tabelle ein:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       ' Aktive Zeile farbig hervorheben
       Range("B" & Target.Row & ":N" & Target.Row).Interior.Color = RGB(255, 255, 153) ' Gelb
    
       ' Aktive Zelle farbig hervorheben
       ActiveCell.Interior.Color = RGB(184, 251, 95) ' Grün
    End Sub
  2. Bedingte Formatierung einrichten (optional):

    • Wähle den Bereich B:N aus, den du formatieren möchtest.
    • Gehe zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“.
    • Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“.
    • Für die aktive Zeile verwende die Formel:
      =ZEILE()=ZEILE(INDIREKT("A" & ZÄHLENWENN($A:$A,"<>")))
    • Stelle die gewünschte Formatierung ein.

Häufige Fehler und Lösungen

  • Fehler: Die Zeile wird nicht farbig hervorgehoben:

    • Überprüfe, ob der VBA-Code im richtigen Modul eingefügt wurde und das Blatt korrekt ausgewählt ist.
  • Fehler: Die aktive Zelle wird nicht farbig dargestellt:

    • Stelle sicher, dass du die richtige Zeile und Spalte im VBA-Code angibst.
  • Lösung: Bedingte Formatierungen überschreiben die VBA-Formatierungen:

    • Deaktiviere oder passe die bedingte Formatierung an, um Konflikte zu vermeiden.

Alternative Methoden

Wenn du die aktive Zelle hervorheben möchtest, ohne VBA zu verwenden, kannst du die bedingte Formatierung allein nutzen:

  1. Bedingte Formatierung für die aktive Zelle:
    • Wähle den Bereich aus, den du formatieren möchtest.
    • Gehe zu „Bedingte Formatierung“ > „Neue Regel“ und wähle „Formel“.
    • Verwende die Formel:
      =CELL("address")=ADDRESS(ZEILE(),SPALTE())
    • Setze die gewünschte Formatierung.

Praktische Beispiele

  1. Aktive Zelle in Grün und aktive Zeile in Gelb:

    • Verwende den oben angegebenen VBA-Code, um die aktive Zelle und Zeile farbig darzustellen.
  2. Aktive Zelle farbig darstellen ohne VBA:

    • Nutze die bedingte Formatierung mit der Formel zur aktiven Zelle.

Tipps für Profis

  • Verwendung von benannten Bereichen:

    • Statt auf Zellen wie A1 und B1 zuzugreifen, kannst du benannte Bereiche verwenden, um die Lesbarkeit und Wartbarkeit deines Codes zu verbessern.
  • Verwendung von Public Variablen:

    • Definiere Public Variablen im Modul, um die Koordinaten der aktiven Zelle zu speichern und in anderen Prozeduren zu verwenden.

FAQ: Häufige Fragen

1. Wie kann ich die aktive Zelle in Excel hervorheben, ohne VBA zu verwenden? Du kannst die bedingte Formatierung verwenden, um die aktive Zelle farbig darzustellen, indem du die Formel =CELL("address")=ADDRESS(ZEILE(),SPALTE()) anwendest.

2. Wie kann ich die Farbe der aktiven Zelle ändern? Im VBA-Code kannst du die RGB-Werte ändern, um die Farbe der aktiven Zelle zu modifizieren. Beispielsweise kannst du RGB(255, 0, 0) für Rot verwenden.

3. Ist es möglich, die aktive Zeile und Spalte gleichzeitig hervorzuheben? Ja, du kannst den VBA-Code so ändern, dass sowohl die aktive Zeile als auch die aktive Spalte farbig hervorgehoben werden, indem du die entsprechenden Zellen im Code anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige