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.
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:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28 • Daniel Albert
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.
ö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:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28 • Daniel Albert
24.01.2016, 18:56 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2016, 18:56 von Steffl.)
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:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28 • Daniel Albert
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.
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