joe2017
Goto Top

Excel Zelle automatisch einfärben mit hex oder rgb wert der Nachbarzelle

Hallo Excel Freunde,

gibt es eine Möglichkeit eine Zelle in Excel automatisch mit dem Farb Wert (hex Wert oder RGB Wert) der Nachbarzelle einzufärben.
Beispiel:

In Zelle A1 steht ein hex Wert (000000)
In Zelle B1 steht der RGB Wert (0-0-0)
Die Zelle C1 soll jetzt automatisch mit dem Wert (also Schwarz) eingefärbt werden.

Das Ganze muss ohne Makro möglich sein.

Ich habe in der Spalte A und B dutzende Farbwerte und möchte ungerne alles per Hand einfärben.

Content-Key: 592071

Url: https://administrator.de/contentid/592071

Printed on: April 19, 2024 at 23:04 o'clock

Member: it-frosch
Solution it-frosch Jul 30, 2020 updated at 13:48:51 (UTC)
Goto Top
Hallo joe,

das sollte dir helfen:

Zellfarbe als RGB Wert aus Zelle auslesen.

Du hast m.E. zwei Möglichkeiten: manuell oder Makro.

grüsse vom it-frosch
Mitglied: 145033
145033 Jul 30, 2020 updated at 13:56:35 (UTC)
Goto Top
Zitat von @it-frosch:
Du hast m.E. zwei Möglichkeiten: manuell oder Makro.
Jepp, andere eingebaute Möglichkeiten gibt's dafür nicht. Da musst du zumindest ein Makro anwerfen wenn du nichts von Hand machen willst.
Member: it-frosch
it-frosch Jul 30, 2020 at 14:00:00 (UTC)
Goto Top
Hallo joe,

mir fällt da noch etwas ein.

Du könntest natürlich dir eine Referenztabelle bauen in der du einmalig manuell oder mit diesem Macro dem RGB Wert die jeweilige Farbe zuordnest. Anschließend kannst du es sicherlich automatisch einfärben.

grüße vom it-frosch
Mitglied: 145033
Solution 145033 Jul 30, 2020 updated at 14:25:56 (UTC)
Goto Top
Oder schnell mit der Powershell, wenn er das Wort "Makro" nicht will :-P
$excel= New-Object -ComObject Excel.Application -Property @{Visible = $true}
$workbook = $excel.Workbooks.Open('D:\Mappe.xlsx')  
$sheet = $workbook.Sheets.Item(1)
$sheet.Range("A1:A" + $sheet.Cells($sheet.Rows.Count,"B").End(-4162).Row) | %{  
    $_.Offset(0,2).Interior.Color = [System.Drawing.Color]::FromArgb([convert]::ToInt32($_.Text,16))
}
[void][System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel)
Member: joe2017
joe2017 Jul 30, 2020 at 14:25:16 (UTC)
Goto Top
Das Problem ist, dass sämtliche Makro oder VBS Möglichkeiten aus Sicherheitsgründen gesperrt sind.
Somit bleibt mir nur ein manuelles bearbeiten. Theoretisch muss es kein Excel sein. Es könnte auch etwas anderes benutzt werden.
Ich muss nur eine Möglichkeit haben verschiedene Werte als HEX und Color angezeigt zu bekommen.
Mitglied: 145033
145033 Jul 30, 2020 updated at 14:31:00 (UTC)
Goto Top
Zitat von @joe2017:

Das Problem ist, dass sämtliche Makro oder VBS Möglichkeiten aus Sicherheitsgründen gesperrt sind.
Dann machst es zu Hause oder auf deinem privat Laptop oder online mit Google Sheets face-smile.

Somit bleibt mir nur ein manuelles bearbeiten. Theoretisch muss es kein Excel sein. Es könnte auch etwas anderes benutzt werden.
Ich muss nur eine Möglichkeit haben verschiedene Werte als HEX und Color angezeigt zu bekommen.
Oder als CSV exportieren und in der Powershell die Farbe darstellen.
Member: joe2017
joe2017 Jul 30, 2020 at 14:47:18 (UTC)
Goto Top
Ich werde schauen was ich mache. Benötige es ja hier und nicht Privat.

Aber danke für die Tipps!
Mitglied: 145033
Solution 145033 Jul 30, 2020 updated at 15:07:10 (UTC)
Goto Top
Benötige es ja hier und nicht Privat.
Das nennt man Engagement face-big-smile

$file = 'D:\test.csv'  
@"  
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<title>Farben</title>
</head>
<body>
<table border="0" width="">  
$(
    Import-CSV $file -Header Farbe | %{
        "<tr><td>$($_.Farbe)</td><td width=50 style=`"background-color:#$($_.Farbe)`">&nbsp;</td></tr>"  
    }
)
</table>
</body>
</html> 
"@ | sc "$env:Temp\colors.html"  
start "$env:Temp\colors.html"  

screenshot
Member: joe2017
joe2017 Jul 30, 2020 at 15:19:40 (UTC)
Goto Top
Du bist ja echt ein Tier! Daran hab ich jetzt überhaupt nicht gedacht.
Ich komm jedoch nicht ganz klar.
- Ich habe eine Index.html Datei mit deinem Code erstellt
- Ich habe eine test.csv Datei mit Werten erstellt
ffffff
ff0000
ff3399

Ich bekomme jedoch folgenden Fehler:
$file = 'D:\color\test.csv' @" $( Import-CSV $file -Header Farbe | %{ "" } )  
$($_.Farbe)	 
"@ | sc "$env:Temp\colors.html" start "$env:Temp\colors.html"  
Mitglied: 145033
145033 Jul 30, 2020 updated at 15:23:29 (UTC)
Goto Top
Zitat von @joe2017:
- Ich habe eine Index.html Datei mit deinem Code erstellt
Falsch das ist Powershell-Code du musst nur eine CSV aus deinen Daten exportieren und in dem Powershell-Schnippsel in Zeile 1 den Pfad eintragen und starten, feedisch (öffnet sich dann der Default Browser mit der generierten HTML-Datei).
Member: joe2017
joe2017 Jul 30, 2020 at 15:29:13 (UTC)
Goto Top
Ahhhh... Du bist ja genial! Vielen Dank!
Das hilft mir natürlich unglaublich weiter!

Aber wahrscheinlich geht das auch direkt in html ohne Powershell oder?
Mitglied: 145033
145033 Jul 30, 2020 updated at 15:30:21 (UTC)
Goto Top
Zitat von @joe2017:
Aber wahrscheinlich geht das auch direkt in html ohne Powershell oder?
Kann man auch, => JavaScript-Hausaufgabe :-P
Member: colinardo
Solution colinardo Jul 30, 2020 updated at 17:33:18 (UTC)
Goto Top
Zitat von @joe2017:
Aber wahrscheinlich geht das auch direkt in html ohne Powershell oder?
Jipp, hier mal als "plain" JavaScript ohne Libraries face-smile
https://jsfiddle.net/9vnra0ej/

Grüße Uwe
Member: it-frosch
it-frosch Jul 31, 2020 at 06:32:56 (UTC)
Goto Top
Hallo an alle,

dieser Beitrag zeigt super, warum ich das Administrator Forum so liebe, wenn alles konstruktiv bleibt.face-wink

Hier sind zu diesem Thema so viele gute Ideen und Ansätze drin, dass ich mir den gleich auf meine Liste setze.

Vielen Dank an alle. face-smile

Grüße vom it-frosch
Member: joe2017
joe2017 Aug 03, 2020 at 09:49:16 (UTC)
Goto Top
Also vielen Dank noch mal allen zusammen.
Bin leider eben erst wieder dazu gekommen.
Das mit der HTML Seite ist natürlich ganz easy! Wobei das PS Script auch ne sehr coole Idee ist.

Danke nochmal!