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

Range.interior.colorindex

Forumthread: Range.interior.colorindex

Range.interior.colorindex
01.09.2005 14:59:25
jolago
Hallo zusammen, kann mir jemand sagen was hier los ist:
Zellen Farbe in ungeschützten Bereichen einer geschützten Tabelle ändern
1.Habe zunächst einige Zellen in einer Tabelle, in denen ich
während der Laufzeit Eigenschaften verändern will auf range.locked =false
gesetzt. Alle anderen Zellen sind gesperrt.
2.Anschliessend wird die Tabelle geschützt über sheets(1).protect
3.Beim Anklicken einer ungeschützten Zelle wird ein change Ereignis ausgelöst. In dieser Prozedur soll mittels range.interior.colorindex = z.B 6 der Farbwert der Zelle geändert werden.
Problem: Beim Aufruf von range.interior.colorindex = 6 gibt er immer den Fehler
1004 aus - Die ColorEigenschaft des Interior-Objects kann nicht festgelegt werden.
Anmerkung: Das Range Object ist richtig initialisert. Der Wert des Bereichs kann ohne Probleme verändert werden.
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range.interior.colorindex
01.09.2005 15:05:07
Ramses
Hallo
du solltest keine EXCEL Schlüsselwörter als Variablen verwenden
Wenn es ein Change oder Selection_Change Ereignis ist, verwende das Target-Objekt
Target.Interior.Colorindex = 6
Gruss Rainer
AW: Range.interior.colorindex
01.09.2005 15:09:13
jolago
hallo, danke für die schnelle Rückmeldung,
befinde mich in der sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Interior.ColorIndex = 6
End Sub

Dies führt dann zu der Fehlermeldung !
Anzeige
Dann ist die Zelle geschützt o.T.
01.09.2005 15:12:35
Ramses
...
AW: Dann ist die Zelle geschützt o.T.
01.09.2005 15:17:15
jolago
.locked = false !
AW: Dann ist die Zelle geschützt o.T.
01.09.2005 15:20:19
Nepumuk
Hi,
dann so:
sheets(1).protect userinterfaceonly:=True
Und der Code in der Tabelle:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Target.Locked Then Target.Interior.ColorIndex = 3
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
Danke userinterfaceonly:=True ist die Lösung
01.09.2005 15:44:29
Jolago
Danke jetzt läufts, Gruss JL
AW: Range.interior.colorindex
01.09.2005 15:14:20
Nepumuk
Hi,
in einer geschützten Tabelle kannst du, auch wenn die Zelle selbst nicht geschützt ist, das Interior - Objekt nicht ansprechen. Dazu müsstest du das Userinterface freigeben.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Nepumuk
01.09.2005 15:26:25
Jolago
Hi Nepumuk, danke für den Hinweis, kann ich denn das Userinterface freischalten ?
Oder meinst du ich muss den Schutz aufheben ?
AW: Nepumuk
01.09.2005 15:27:56
u_
Hallo,
in VBA
activesheet.protect password:="Pass", userinterfaceonly:=true
Gruß
Geist ist geil!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellenfarbe in einer geschützten Excel-Tabelle ändern


Schritt-für-Schritt-Anleitung

Um die Zellenfarbe in ungeschützten Bereichen einer geschützten Tabelle mit VBA zu ändern, folge diesen Schritten:

  1. Zellen entsperren: Setze die Locked-Eigenschaft der gewünschten Zellen auf False. Dies kannst Du in der Excel-Oberfläche unter "Format Cells" (Zellen formatieren) im Reiter "Protection" (Schutz) tun.

  2. Tabelle schützen: Schütze die Tabelle mit dem folgenden VBA-Code:

    Sheets(1).Protect
  3. Ereignis-Prozedur einrichten: Füge den folgenden Code in das Arbeitsblatt-Modul ein, um die Interior.ColorIndex der Zelle zu ändern, wenn sie ausgewählt wird:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Not Target.Locked Then
           Target.Interior.ColorIndex = 6 ' Ändert die Farbe zu gelb
       End If
    End Sub
  4. Schutz nur für die Benutzeroberfläche aktivieren: Um die Interior.ColorIndex-Eigenschaft auch bei geschützten Zellen ansprechen zu können, füge diesen Befehl hinzu:

    ActiveSheet.Protect UserInterfaceOnly:=True

Häufige Fehler und Lösungen

  • Fehler 1004: "Die ColorEigenschaft des Interior-Objects kann nicht festgelegt werden."
    Lösung: Stelle sicher, dass die Zelle nicht gesperrt ist. Verwende das Target-Objekt wie folgt:

    Target.Interior.ColorIndex = 6
  • Zellenfarbe ändert sich nicht:
    Lösung: Stelle sicher, dass die UserInterfaceOnly-Option beim Schützen der Tabelle aktiviert ist. Diese Option erlaubt es, VBA-Code auf ungeschützte Zellen anzuwenden, auch wenn die Tabelle geschützt ist.


Alternative Methoden

Eine alternative Methode zur Änderung der Zellenfarbe ist die Verwendung von DisplayFormat.Interior.ColorIndex. Das ermöglicht es, die Formatierung zu ändern, ohne den Schutz der Tabelle aufzuheben. Der Code könnte so aussehen:

Target.DisplayFormat.Interior.ColorIndex = 3 ' Ändert die Farbe zu rot

Praktische Beispiele

Hier sind einige nützliche Beispiele zur Anwendung der Interior.ColorIndex:

  • Farbe auf rot setzen:

    Target.Interior.ColorIndex = 3 ' Rot
  • Farbe auf grün setzen:

    Target.Interior.ColorIndex = 4 ' Grün
  • Farbe auf blau setzen:

    Target.Interior.ColorIndex = 5 ' Blau

Diese Beispiele zeigen, wie Du die Interior.ColorIndex effektiv in Deiner VBA-Prozedur nutzen kannst.


Tipps für Profis

  • Vermeide Schlüsselwörter: Nutze keine Excel-Schlüsselwörter als Variablenbezeichnungen, um Verwirrung zu vermeiden.
  • Benutze Kommentare: Kommentiere Deinen Code, um die Lesbarkeit und Wartbarkeit zu verbessern.
  • Teste Deinen Code: Stelle sicher, dass Du Deinen Code in einer Testumgebung ausprobierst, um unerwünschte Änderungen in produktiven Dateien zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich die Zellenfarbe auch ändern, wenn die Zelle geschützt ist?
Ja, indem Du die Option UserInterfaceOnly beim Schützen der Tabelle aktivierst, kannst Du Änderungen an ungeschützten Zellen vornehmen.

2. Was ist der Unterschied zwischen ColorIndex und RGB?
ColorIndex verwendet eine Palette, während RGB eine Farbmischung definiert. RGB ermöglicht eine genauere Farbauswahl.

3. Wie kann ich die verfügbaren Farben für ColorIndex sehen?
Du kannst die ColorIndex-Werte in der Excel-Hilfe nachschlagen oder in VBA eine Schleife verwenden, um die Farben anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige