Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelle auswählen -> Farbe ändern

Zelle auswählen -> Farbe ändern
07.03.2017 10:36:41
Nati
Hallo zusammen,
ich komme über einen Hyperlink von einem Sheet zu einem anderen Sheet. Wenn die Zelle des anderen Sheets ausgewählt wurde, soll sich die Farbe der Zelle ändern( nur diese Zelle soll die Farbe ändern, alle anderen Zellen sollen die Standardformatierung beibehalten. Wenn ich dann von dem Hyperlink zu einer anderen Zelle komme, soll die davor ausgewählte Zelle wieder die Standardformatierung behalten.
D.h. die Farbe soll sich nur ändern, wenn man die Zelle auswählt. Mein Vorschlag:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 And IsEmpty(Target) Then Target.Interior.Color = vbBlue
End Sub

--> hier passiert gar nix -.-
oder:

Sub Worksheet_SelectionChange(ByVal Target As Range)
Rows.Interior.ColorIndex = xlColorIndexNone
Target.EntireColumn.Interior.ColorIndex = 36
Target.EntireRow.Interior.ColorIndex = 36
End Sub

--> hier sind die Zellen dann aber alle weiß, durch die erste zeile.
Liebe Grüße
Nathalie
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle auswählen -> Farbe ändern
07.03.2017 10:52:45
Werner
Hallo Nathalie,
Private Sub Worksheet_Deactivate()
Cells.Interior.ColorIndex = xlNone
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Cells.Interior.ColorIndex = xlNone
Target.Interior.Color = vbBlue
End Sub
Beim Verlassen des Blattes wird die Zellfarbe zurückgesetzt. Das betrifft aber die Färbung des kompletten Blattes.
Gruß Werner
Anzeige
AW: Zelle auswählen -> Farbe ändern
07.03.2017 11:17:26
Nati
Hallo Werner,
vielen Dank! Der Code funktioniert, allerdings werden die Zellen alle weiß (außer die ausgewählte Zelle). Ich möchte gerne, dass die anderen Zellen die Standardfarben beibehalten.
Hättest du einen Vorschlag?
LG Nathalie
AW: Zelle auswählen -> Farbe ändern
07.03.2017 14:27:01
Nati
Werner, das xlNone entfernt den Hintergrund. Die Linien bleiben erhalten. Wie kann ich erreichen, dass die Hintergrundfarbe der anderen Zellen bestehen bleibt ?
Anzeige
AW: Zelle auswählen -> Farbe ändern
08.03.2017 07:42:59
Werner
Hallo Nathalie,
ich habe hier einen Code von Hajo Ziplies gefunden der deinen Anforderungen entsprechen dürfte.
Das hier in ein allgemeines Modul:
Nur ein Modul anlegen und den Code reinkopieren, bitte keine Prozedur im Modul anlegen.
Option Explicit
Public OldColorIndex As Variant
Public OldRange As String
Public Register As String
Diesen Code ins Code-Modul von "Diese Arbeitsmappe" kopieren
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If OldRange  "" Then ActiveSheet.Range(OldRange).Interior.ColorIndex = OldColorIndex
End Sub
Private Sub Workbook_Open()
OldRange = ActiveCell.Address
Register = ActiveSheet.Name
OldColorIndex = ActiveCell.Interior.ColorIndex
ActiveCell.Interior.ColorIndex = 33
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
OldRange = ActiveCell.Address
OldColorIndex = ActiveCell.Interior.ColorIndex
ActiveCell.Interior.ColorIndex = 33
Register = ActiveSheet.Name
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If OldRange  "" Then Worksheets(Register).Range(OldRange).Interior.ColorIndex =  _
OldColorIndex
End Sub
Diesen Code ins Code Modul von dem Arbeitsblatt, auf dem er sich auswirken soll
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'   Beim 1. Aufruf ist OldRange noch undefiniert
If OldRange = "" Then
OldRange = Target.Address
OldColorIndex = Target.Interior.ColorIndex
'       Setze Hintergrundfarbe der aktiven Selection auf Blau
Target.Interior.ColorIndex = 33
Else
'       Setze alten Range auf alte Farbe
If Range(OldRange).Interior.ColorIndex = 33 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 Blau
Target.Interior.ColorIndex = 33
End If
End Sub
Hier auch noch der Link zum Beitrag: https://www.herber.de/forum/archiv/168to172/168267_VBA_Zellen_hervorheben.html#168267
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelle auswählen und Farbe ändern in Excel


Schritt-für-Schritt-Anleitung

Um die Hintergrundfarbe einer aktiven Zelle in Excel zu ändern, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du die Zellenfarbe ändern möchtest.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsmappenname)".
    • Wähle "Einfügen" und dann "Modul".
  4. Kopiere und füge den folgenden Code ein:

    Option Explicit
    Public OldColorIndex As Variant
    Public OldRange As String
    Public Register As String
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       If OldRange <> "" Then ActiveSheet.Range(OldRange).Interior.ColorIndex = OldColorIndex
    End Sub
    
    Private Sub Workbook_Open()
       OldRange = ActiveCell.Address
       Register = ActiveSheet.Name
       OldColorIndex = ActiveCell.Interior.ColorIndex
       ActiveCell.Interior.ColorIndex = 33
    End Sub
    
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       OldRange = ActiveCell.Address
       OldColorIndex = ActiveCell.Interior.ColorIndex
       ActiveCell.Interior.ColorIndex = 33
       Register = ActiveSheet.Name
    End Sub
    
    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
       If OldRange <> "" Then Worksheets(Register).Range(OldRange).Interior.ColorIndex = OldColorIndex
    End Sub
  5. Gehe zurück zu deinem Arbeitsblatt und füge diesen Code im Arbeitsblattmodul hinzu:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If OldRange = "" Then
           OldRange = Target.Address
           OldColorIndex = Target.Interior.ColorIndex
           Target.Interior.ColorIndex = 33
       Else
           If Range(OldRange).Interior.ColorIndex = 33 Then
               Range(OldRange).Interior.ColorIndex = OldColorIndex
           End If
           OldColorIndex = Target.Interior.ColorIndex
           OldRange = Target.Address
           Target.Interior.ColorIndex = 33
       End If
    End Sub
  6. Speichere Deine Änderungen und schließe den VBA-Editor.

Jetzt sollte die Hintergrundfarbe der aktiven Zelle in Excel geändert werden, während die anderen Zellen ihre Standardformatierungen beibehalten.


Häufige Fehler und Lösungen

  • Problem: Die Zellen werden alle weiß, außer der aktiven Zelle.

    • Lösung: Stelle sicher, dass Du den richtigen Code für die Standardformatierung verwendest. Verwende OldColorIndex anstelle von xlNone, um die Standardfarbe beizubehalten.
  • Problem: Der Code funktioniert nicht.

    • Lösung: Überprüfe, ob der Code korrekt eingefügt wurde und ob Du die richtigen Module verwendest (ein Modul für die Arbeitsmappe und eines für das Arbeitsblatt).

Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch die Bedingte Formatierung in Excel verwenden, um die Hintergrundfarbe einer Zelle basierend auf bestimmten Bedingungen zu ändern. Hier ist wie:

  1. Wähle die Zelle oder den Bereich aus.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib eine Formel ein, die auf die Bedingungen für die farbige Darstellung verweist, z.B. =A1=1.
  5. Wähle das Format und die gewünschte Farbe.

Praktische Beispiele

Hier sind einige praktische Anwendungsfälle:

  • Du möchtest die rahmenfarbe der aktiven zelle in excel ändern, wenn Du auf eine Zelle klickst. Das geht einfach mit dem VBA-Code, den wir vorher verwendet haben.

  • Bei der Verwendung von Excel VBA kannst Du auch die Linienfarbe ändern oder die Hintergrundfarbe ändern, wenn eine bestimmte Bedingung erfüllt ist.


Tipps für Profis

  • Verwende Shortcuts, um schneller zwischen Zellen zu navigieren und die Formatierung zu ändern. Das kann Deine Effizienz beim Arbeiten mit Excel erheblich steigern.
  • Experimentiere mit unterschiedlichen Farbwerten in VBA, um die Zellenfarbe ändern zu können. Nutze RGB-Werte für präzisere Farben.
  • Halte Deine Makros organisiert, indem Du sie in klar benannten Modulen speicherst.

FAQ: Häufige Fragen

1. Wie ändere ich die Rahmenfarbe der aktiven Zelle in Excel? Du kannst die Rahmenfarbe mit VBA ändern, indem Du den entsprechenden Code in das Arbeitsblattmodul einfügst. Nutze die .Borders-Eigenschaft.

2. Wie kann ich die Hintergrundfarbe ändern, wenn eine Zelle ausgewählt wird? Verwende die Worksheet_SelectionChange-Ereignisprozedur in VBA, um die Hintergrundfarbe der Zelle dynamisch zu ändern, während Du zwischen den Zellen wechselst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige