Zellhintergrundfarbe durch Zelleninhalt ändern
#1
Hallo,

ich suche eine Möglichkeit den Zellenhintergrund aufgrund eines X in der gleichen Zelle zu ändern. Die Farbnummer soll aber über eine anderen Zelle ausgelesen werden. In der Zelle B5 steht 3 für die Farbe Rot. Nun möchte ich, dass wenn in einer anderen Zelle ein X eingetragen wird von dieser Zelle die Hintergrundfarbe aus der Zelle B5 übernommen wird.

Gruß Daniel
Top
#2
Hallo Daniel,

meinst Du so?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If UCase(Target.Value) = "X" Then Target.Interior.ColorIndex = Cells(Target.Row, 2).Value
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Daniel Albert
Top
#3
Hallo Stefan,

ja so ähnlich. Ich brauche das pro Spalte siehe Tabelle.

Beispiel: Spalte D4:D27 soll bei einem X die Farbe aus Zelle AM31 annehmen. Bei F4:F27 Farbe der Zelle AM32. Ist das möglich ?


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 39,34 KB / Downloads: 8)
Top
#4
Hallo Daniel,

mal ungetestet da die UDF Schrift nicht in der Datei enthalten ist.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rngFarbe As Range
  
   If Not Intersect(Target, Range("D4:E27")) Is Nothing Then
      Select Case Target.Column
         Case 4
            Set rngFarbe = Range("AM31")
         Case 6
            Set rngFarbe = Range("AM32")
         Case Else
            Exit Sub
      End Select
      If UCase(Target.Cells(1).Value) = "X" Then Target.Interior.ColorIndex = rngFarbe.Value
   End If
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Daniel Albert
Top
#5
Hallo Stefan,

bei rngFarbe steht Fehler 2029

Wenn ich direkt einen Farbcode eintrage z.B. 4 geht es. bei rngFarbe.Value kommt Fehler 2029

      If UCase(Target.Cells(1).Value) = "X" Then Target.Interior.ColorIndex = rngFarbe.Value

er übernimmt in die Variable rngfarbe nicht die Zahl.

was ich verstehe ist der Case. Im grunde ist ja für jede Spalte hier im Beispiel D4 bis D27 der Farbwert in Zelle AM31 festgelegt und für F4 bis F27 in Zelle AM32.

Liegt es daran ?
Top
#6
Hallo Daniel,

öffne ich die von dir hochgeladene Datei, steht in den Zellen AM31 und AM32 jeweils #NAME?. Gehe ich auf die Zellen, lese ich in der Bearbeitungsleiste =Schrift. Darum habe ich vermutet, das Du eine benutzerdefinierte Funktion verwendest. Wenn die in der Datei nicht vorhanden ist, kommt es zu dieser Fehlermeldung.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Daniel Albert
Top
#7
Hallo,

ja stimmt der Definierte Name war gelöscht. Jetzt geht es wieder, siehe Anhang

Leider geht die Spalte B nicht und C ist die falsche Farbe.


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 41,14 KB / Downloads: 2)
Top
#8
Hallo Daniel,

(24.01.2016, 17:09)Daniel Albert schrieb: Leider geht die Spalte B nicht und C ist die falsche Farbe.

:20:

Du sprichst in den ersten Beiträgen hier in diesem Thread von Spalte D und E. Jetzt von Spalte B und C. Du hast im Code nur eine Stelle geändert. Du mußt schon an mehreren Stellen ändern. Spalte A ist 1, Spalte B ist 2....

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rngFarbe As Range
  
   If Not Intersect(Target, Range("B4:D27")) Is Nothing Then
      Select Case Target.Column
         Case 2
            Set rngFarbe = Range("AM31")
         Case 4
            Set rngFarbe = Range("AM32")
         Case Else
            Exit Sub
      End Select
      If UCase(Target.Cells(1).Value) = "X" Then Target.Interior.ColorIndex = rngFarbe.Value
   End If
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Daniel Albert
Top
#9
Hallo Stefan,

ja du hast recht, die mappe 1 ist ein Arbeitsplan, sprich es wiederholen sich die Spalten für 6 nutzer. spalte B,F,F,H,J, und L für Montag sind die Spalten mit der Farbanzeige für die Arbeitszeiten. Die Spalten C,E,G,I,K,M sind Hilfsspalten zum zählen der Farbzellen für die Stundenübersicht. Das gleiche wiederholt sich Dienstag, Mittwoch, Donnerstag und Freitag.

Dein Marko funktioniert für Spalten B und D.
Top
#10
Stefan,

DANKE, habe das Makro erweitert und es funktioniert. Habe das Makro noch erweitert, dass wenn das X entfernt wird wieder die Farbe gelöscht wird oder besser überschrieben wird mit 0

Nochmal Danke
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste