Excel - Problém s makrem k změně barvy pozadí vybraných buněk
Dobrý den,
Do souboru jsem vložil makro, které zvýrazní tyrkysovou barvou vyznačené buňky
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
' Clear the color of all the cells
Cells.Interior.ColorIndex = 0
' Highlight the active cell
Target.Interior.ColorIndex = 8
Application.ScreenUpdating = True
End Sub
Kód na první pohled funguje správně, ale jsou tu čtyři problémy.
1. Když kliknu na buňku s vlastním barvou pozadí díky podmíněnému formátování, tak to nefunguje. Tam by stačilo zvýšit prioritu.
2. V souvislosti s tím se zruší všechny barvy pozadí, které jsou nastavené ručně a ani to nejde změnit. Po kliknutí bokem barva pozadí opět zmizí.
3. Pokud to má otevřeno více uživatelů, jeden to označí, zvýrazní se mu to a vidí to i druhý. Pokud to však označí ten druhý, ten první to uvidí taky, ale jemu to zvýraznění zmizí respektive jsou zvýrazněné buňky vždy jedním uživatelem.
4. Jak omezit, aby to dělal pouze v určitém rozsahu, poněvadž tím že pracuje s celou tabulkou, je to mírně pomalé.
Prosím o radu,
Děkuji
Tebe sa nezvýrazňuje vybraná oblasť buniek?
Alebo ide len o to, že Ti nevyhovuje farba?
Stojí Ti to za to chcieť to zmeniť i za cenu Tebou spomínaných problémov, ktoré to prináša?
On bude problem i s tím pověšením na událost SelectionChange.
Pak se to bude měnit při každém kliknutí na libovolnou buňku. I jedna buňka je Selection
Barvu měnit nechci. A jak jsem napsal, pokud vyberu oblast buněk, změní barvu, ale jakmile vybere náhodnou oblast někdo jiný, barva zmizí.
Šlo mně jenom o to, aby šli dobře vidět i ty buňky, co mají ohraničení. Jenže, tento kód, který uvádí sám Microsoft, přináší víc potíží než užitku.
Samozrejme, ze barva zmizí. Máš to tak v kodu napsané.
Vyhod radek s mazanim pozadi a barva bude zustavat. Ale cokoliv oznacis, kamkoliv kliknes se zabarvi a zustane
Zkus to jinak a mapis, co vlastne chces, aby to delalo
Odpovede na body dotazu:
1) logické: podmienené formátovanie má farbu nastavenú podľa podmienky a preto nedovolí zmenu farby, kým výsledkom výrazu podmienky je Pravda
2) logické: keď bunku prefarbíš, prečo by sa mala objaviť jej pôvodná farba po jej odfarbení výberom? Máš niekde odloženú informáciu, že táto bunka bola predtým napr. ružová?
3) logické: aj keď viac užívateľov, stále pracujú na tom istom súbore, t.j. kód zapracuje akonáhle sa zmení výber a je jedno, či výber zmení jeden, druhý alebo x-tý užívateľ
4) je možné zadať len určitú oblasť, v ktorej sa má vykonávať kontrola, či zmena nastala len v rámci tejto oblasti. Excel si oblasť zmeny označuje ako Target. Kód sa vykoná len pokiaľ je Target podmnožinou tebou zadanej oblasti pre kontrolu
Keďže nie je možné zabezpečiť, aby prvé tri body pracovali ako ty chceš a nie podľa pravidiel Excelu (resp kód by bol neúmerne komplikovaný kvôli tak nezmyselnej požiadavke), nemá význam riešiť ani 4. bod.