ich habe jetzt lange herumprobiert und viel gelesen; leider habe ich bisher keine richtige Lösung gefunden.
Ich habe eine Excel-Datei mit allen RAL-Farbtönen; diese habe ich bereits angelegt und es gibt jeweils eine Zelle für jeden Farbton mit der korrekten Hintergrundfarbe (RGB-Wert). Davor steht der RAL-Ton in einer Zelle (als Zahlenwert, das RAL steht nur aus optischen Gründen über Format dort).
Jetzt möchte ich in Zelle A1 eines anderen Arbeitsblatts einen Wert eingeben (bspw. für RAL 1000 die "1000"), so dass sich Zelle B1 in der Farbe von RAL 1000 färbt. Genauso sollen dahinter die Farbbezeichnungen erscheinen (also z.B. "Grünbeige" etc.)
Gibt es hierfür eine einfache Lösung?
Danke im Voraus!
P.S.: Im Anhang ein Screenshot zur Verdeutlichung!
mit normalen Bordmitteln kannst du mittels Formeln keine Farbe auf andere Zellen übertragen. Das wäre die von dir favorisierte "einfache Lösung". Wenn überhaupt, so ist das nur per Makro möglcih. Da aber müssen dir die VBA-Spezies helfen.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
bei Deiner Excelversion könntest Du per bedingter Formatierung 64 Farben erreichen. Falls das reicht, ist gut, falls nicht, kannst Du Dich nochmal melden und wir bauen was aus VBA Der Farbname daneben wäre sicher einfach per SVERWEIS lösbar.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
(29.11.2015, 21:39)schauan schrieb: Falls das reicht, ist gut, falls nicht, kannst Du Dich nochmal melden und wir bauen was aus VBA Der Farbname daneben wäre sicher einfach per SVERWEIS lösbar.
für eine VBA-Lösung wäre es sicher gut, wenn wir die komplette Datei hätten. Die farbigen Texte sind anklickbare Links:
erstmal danke für die schnelle Antwort! Ich bin begeistert!
64 Farben werden nicht reichen, da es sich um ca. 200 verschiedene Farbtöne handelt.
Im Anhang findet sich die Datei;
Zur Erklärung: In Arbeitsblatt "RAL Farben" stehen die möglichen RAL-Töne inkl. Bezeichnungen auf 5 Sprachen. In Spalte E ist der Farbton als Hintergrundfarbe eingestellt.
Nun soll im Arbeitsblatt "Vorschriften" der jeweilige Farbton angegeben werden. In die orangen Felder soll der Wert (z.B 7011) eingetragen werden, so dass in Spalte D der Name auftaucht (in unserem Fall "Eisengrau"). In Spalte F soll das Feld nur die Hintergrundfarbe bekommen, die für RAL 7011 im Arbeitsblatt "RAL Farben" vorgesehen ist.
Ich hoffe, dass das verständlich erklärt ist :) Neben den RAL-Farbtönen gibt es noch die Möglichkeit für "verzinkt". Das dürfte aber normal kein Problem darstellen.
Werde wahrscheinlich dann noch auf ein weiteres Problem stoßen in Zukunft (s. verschiedene Sprachen). Aber da würde ich mich dann noch gesondert zu melden.
den Namen der Farbe kannst Du mit =SVERWEIS() bestimmen:
Arbeitsblatt mit dem Namen 'Vorschriften'
B
C
D
E
F
G
H
I
J
10
RAL 5026
Perlnachtblau
16
44
84
Zelle
Formel
D10
=SVERWEIS(B10;RAL_Farben!$A$2:$J$215;6;0)
H10
=SVERWEIS(B10;RAL_Farben!A2:D215;2;0)
I10
=SVERWEIS(B10;RAL_Farben!A2:D215;3;0)
J10
=SVERWEIS(B10;RAL_Farben!A2:D215;4;0)
In den Hilfsspalten H, I und J habe ich die RGB-Werte ebenfalls mit SVERWEIS() ausgelesen, die ich über das Worksheet-Change-Ereignis für folgenden Code hinter der Tabelle "Vorschriften" verwende:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Range("F10").Interior.Color = RGB(Range("H10"), Range("i10"), Range("J10")) End Sub
Überlegen macht überlegen Gruss aus dem schönen Hunsrück _______ Klaus-Martin _______
30.11.2015, 10:20 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2015, 10:45 von Kuwer.)
Hallo Phillipp,
folgender Code kommt in das schon vorhandene VBA-Modul der Tabelle "Vorschriften":
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Dim lngZ As Long With Target.Cells(1) If .Column = 2 Then On Error Resume Next Application.EnableEvents = False If Len(.Value) Then lngZ = Application.Match(.Value, Worksheets("RAL_Farben").Range("A1:A215"), 0) If lngZ = 0 Then .Value = "" Cells(.Row, 4) = "" Cells(.Row, 6).Interior.Color = xlNone Else Cells(.Row, 4).Value = Worksheets("RAL_Farben").Cells(lngZ, 6).Value Cells(.Row, 6).Interior.Color = Worksheets("RAL_Farben").Cells(lngZ, 5).Interior.Color End If Else Cells(.Row, 4) = "" Cells(.Row, 6).Interior.Color = xlNone End If Application.EnableEvents = True On Error GoTo 0 End If End With End Sub
30.11.2015, 12:31 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2015, 12:32 von Chelipe.)
Hallo zusammen,
ihr seid echt wahnsinnig schnell! Da ich von VBA bisher wirklich sehr wenig (bis keine) Ahnung habe, ist es nun so, dass Klaus' Version funktioniert ::) Bei verzinkt hätte ich eigentlich noch gerne, dass er einen Verlauf oder ähnliches in das Farbfeld macht; aber ein grauton reicht für den Moment auch.
Wie ihr seht, gibt es ja noch verschiedene Sprachen (derzeit 5).
Habe mal in der angehängten Datei die Sache ein wenig aktualisiert (für 3 Sprachen).
Es sollte die Möglichkeit geben, zu wählen, ob 1 oder 2 Sprachen angezeigt werden; im nächsten Schritt dann natürlich welche (beides vermutlich am einfachsten per Dropdown-Menü). Im Unteren bereich, also ab Zeile 10 sollte dann entsprechend die richtigen Zeilen ein- bzw. ausgeblendet werden.
Könnt ihr da bitte auch noch mal behilflich sein?
Danke :)
P.S.: Habe nun gerade gemerkt, dass die Version von Uwe fast schöner ist. Gibt für diese nun ein Arbeitsblatt "Vorschriften VBA"