» Poradna » Programy

Změna barvy buňky dle nalezené barvy

 |   |  Microsoft Windows 10 Chrome 128.0.0.0

Dobrý den, V Excellu mám dva sloupce dat, data jsou stejné ale jinak seřazené. Jeden má barevné vyznačené buňky. Potřebuji aby se druhý sloupec měl stejné barvy jako první. Takže potřebuji aby buňka z druhého sloupce vyhledala buňku v prvním sloupci se stejným obsahem, zjistila její barvu a tu pak na sebe zkopírovala. (nemůžu nechat sloupec seřadit stejně a pak zkopírovat formát)Děkuji za pomoc

Mohlo by vás také zajímat

Odpovědi na otázku

 | Microsoft Windows 10 Firefox 129.0

Skúsil by som to cez Podmienené formátovanie. Nájdete ho na karte "Domov" približne v strede.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 128.0.0.0

Zkoušel jsem, musel bych vytvářet pro každou místnost novou podmínku.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 128.0.0.0

Nepřestávám se divit, co všechno lidi chtějí, aby jim excel dělal. Toho co požaduješ jde určitě docílit naprogramováním ve VBA, pokud to umíš. Zda to pújde jenom pomocí nastavení v prostředí excelu si nejsem jist. Každopádně docílit něco takového není celkem triviální záležitost a obávám se, že se neoplatí s tím vúbec zabývat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 128.0.0.0

Sloupce jsou součástí velké tabulky, která se bude následně přes barvu filtrovat. Proto to potřebuji. Nějaké základní makra už jsem psal, bohužel v tom nejsem profík abych si věřil, že to napíšu správně. Jestli mi dáte nějaký návod jak toto složitější makro vytvořit tak to určitě zkusím.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 128.0.0.0

Protože neznám kontext, tak nevím, zda uvažuju správně ale napadlo mě, zda by ten problém nešel vyřešit přes podmíněné formátování. Např. když je v buňce číslo 5, tak barva bude zelená ... a to aplikovat stejně na každou buňku obou sloupcú. Následným jiným seřazením by se barvy buněk měnit neměly.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 128.0.0.0

Jeden sloupec už barvy má a ty nemůžu měnit - označují typ místnosti. Přes podmíněné formátování bych pro každou místnost musel vytvářet vlastní podmínku, a jelikož těch místností je přes 400 a můžou přibývat tak potřebuji nějakou chytrou funkci/makro, která je schopná najít buňku ve sloupci A s názvem místnosti, zjistit její barvu a pak vybarvit buňku ve sloupci B stejně.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 128.0.0.0

Nieco taketo?Sub vyplne() Dim cVzor As Range Dim cCiel As Range Dim c As Range Dim i As Integer Set cVzor = ActiveSheet.Range("A1") 'prva farebna bunka Set cCiel = ActiveSheet.Range("B1") 'prva bunka na zafarbenie For Each c In cCiel.CurrentRegion i = 0 Do If cVzor.Offset(i, 0).Value = c.Value Then c.Interior.Color = cVzor.Offset(i, 0).Interior.Color Exit Do Else i = i + 1 End If Loop While i <= cVzor.CurrentRegion.Rows.Count Next c Set cVzor = Nothing Set cCiel = NothingEnd Sub

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 115.0

Na obarvení buněk neexistuje v Excelu žádná funkce, takže tohle půjde udělat jedině makrem ve VBA. Tady máš něco ke studiu:https://office.lasakovi.com/excel/vba-listy-bunky/bar... https://office.lasakovi.com/excel/vba-listy-bunky/bar... A také doporučuji fórum https://wall.cz/ms-excel-diskuse

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 128.0.0.0

Děkuji, jdu to nastudovat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 128.0.0.0

Proč nelze sloupce seřadit? Přidám sloupec s pořadím. Seřadím. Zkopíruji formáty. Vrátím původní pořadí. Řadící sloupec smažu. Operace na minutu, dvě...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 128.0.0.0

To bych pak musel dělat pokaždé, když se přidá nový řádek případně se změní barva buňky. A jelikož nás v tabulce pracuje více, bylo by to pak už nepraktické. Ale děkuji za odpověď

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 128.0.0.0

IMHO provádět nějaké manipulaci na základě barvy buňky je nesmysl.Promyslete si trochu své počínání a nastavte unikátní klíče pro vámi požadované transformace.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 128.0.0.0

Upřesním:Barva / formát buňky nejsou vstupní data. Vstupem jsou hodnoty buněk a formát / barva z nich mohou být odvozeny.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 130.0

Podle barvy bunky se nebude delat vubec nic. Dulezite veci se budou delat podle hodnoty v nejakem skrytem sloupci. Jako zjednoduseni pro uzivatele se podle toho sloupce bude manipulovat s tou barvou.On realne potrebuje sverit tu tabulku do rukou nekomu, kdo ma potuchu o IT a zna dobre Excel. (Idealne nad ramec toho, ze dokaze napsat spravny nazev toho SW. ;o) )

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Macintosh OS X Safari 0.0

Nezkoušel jsem, ale tvůj přesný dotaz jsem dal Copilotovi.

Rozumím, co potřebujete. Tento úkol lze vyřešit pomocí VBA (Visual Basic for Applications) v Excelu. Níže je uvedený kód VBA, který by měl splnit váš požadavek:
Otevřete Excel a stiskněte Alt + F11 pro otevření editoru VBA.
V editoru VBA klikněte na Insert > Module pro vytvoření nového modulu.
Zkopírujte a vložte následující kód do modulu:

Sub CopyColors()
Dim ws As Worksheet
Dim rng1 As Range, rng2 As Range
Dim cell1 As Range, cell2 As Range
Dim dict As Object

Set ws = ThisWorkbook.Sheets("Sheet1") ' Změňte na název vašeho listu
Set rng1 = ws.Range("A1:A10") ' Změňte na rozsah prvního sloupce
Set rng2 = ws.Range("B1:B10") ' Změňte na rozsah druhého sloupce
Set dict = CreateObject("Scripting.Dictionary")

' Uložení barev z prvního sloupce do slovníku
For Each cell1 In rng1
dict(cell1.Value) = cell1.Interior.Color
Next cell1

' Kopírování barev do druhého sloupce
For Each cell2 In rng2
If dict.exists(cell2.Value) Then
cell2.Interior.Color = dict(cell2.Value)
End If
Next cell2
End Sub

Zavřete editor VBA a vraťte se do Excelu.
Stiskněte Alt + F8, vyberte CopyColors a klikněte na Run.

Tento kód projde buňky v prvním sloupci, uloží jejich barvy do slovníku a poté aplikuje tyto barvy na odpovídající buňky ve druhém sloupci podle jejich hodnoty.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 129.0

Tak snad budou hodnoty ve sloupcích i unikátní.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Barvy, Změna barvy, Sebastián