Note: The other languages of the website are Google-translated. Back to English

Jak změnit barvu záložky listu na základě hodnoty buňky?

Za normálních okolností můžete snadno a rychle změnit barvu karty v aplikaci Excel, ale pokusili jste se někdy změnit barvu karty na základě hodnoty buňky v listu? Pokud vás tento úkol zajímá, promluvím si o některých kódech, které vám umožní zabarvit kartu listu na základě konkrétní hodnoty buňky v aplikaci Excel.

Změňte barvu karty jednoho listu na základě hodnoty buňky pomocí kódu VBA

Změňte více záložek listů na základě hodnoty buňky pomocí kódu VBA


šipka modrá pravá bublina Změňte barvu karty jednoho listu na základě hodnoty buňky pomocí kódu VBA

Například chci, aby aktuální barva záložky listu byla zelená, pokud hodnota buňky v A1 je text „TRUE“, barva záložky bude červená, pokud je text v A1 „FALSE“, a barva záložky bude modrá, pokud hodnota v buňce A1 je jakýkoli jiný text, jak ukazuje následující snímek obrazovky:

barevný list dokumentu podle hodnoty 1

1. Klikněte pravým tlačítkem na kartu listu, kterou chcete změnit na základě dat v buňce A1, a poté vyberte Zobrazit kód z kontextové nabídky.

2. V Microsoft Visual Basic pro aplikace okno, zkopírujte a vložte níže uvedený kód VBA do Modul okno.

Kód VBA: Změňte barvu karty jednoho listu na základě hodnoty buňky:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    If Target.Address = "$A$1" Then
        Select Case Target.Value
        Case "False"
            Me.Tab.Color = vbRed
        Case "True"
            Me.Tab.Color = vbGreen
        Case Else
            Me.Tab.Color = vbBlue
        End Select
    End If
End Sub

barevný list dokumentu podle hodnoty 2

Poznámka: Ve výše uvedeném kódu A1 je odkaz na buňku, podle kterého chcete kartu obarvit, “Pravdivý","Falešný„Jsou text, který potřebujete, můžete je podle potřeby změnit a barvu kódu můžete změnit podle potřeby.

3. Poté uložte a zavřete toto okno s kódem, nyní, když v buňce A1 zadáte text „True“, aktuální barva záložky se změní na zelenou a když do buňky A1 zadáte text „False“, barva záložky se změní na červenou, a pokud do buňky A1 zadáte další text, barva záložky se automaticky změní na modrou.


šipka modrá pravá bublina Změňte více záložek listů na základě hodnoty buňky pomocí kódu VBA

Pokud potřebujete změnit barvu záložek více listů na základě hodnoty buňky, zde je také kód, který vám může pomoci, postupujte takto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno, v otevřeném okně poklepejte Tato pracovní kniha pod Projekt VBA části a poté zkopírujte a vložte níže uvedený kód do mezery Modul:

Kód VBA: Změňte více karet listů na základě hodnoty buňky:

Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  'Updateby Extendoffice 20160930
  Select Case Sheets("Master").Range("A1").Value
         Case "KTE"
             Sheets("Sheet1").Tab.Color = vbRed
         Case "KTO"
             Sheets("Sheet2").Tab.Color = vbGreen
         Case "KTW"
             Sheets("Sheet3").Tab.Color = vbBlue
         End Select
End Sub

barevný list dokumentu podle hodnoty 3

Poznámka: Ve výše uvedeném kódu A1 a Master jsou buňka a list, podle kterých chcete kartu obarvit, Sheet1, Sheet2, Sheet3 jsou listy, kterými chcete zabarvit karty. KTE, KTW, KTO jsou hodnoty buněk v A1, podle kterých chcete barvy karet upravit, můžete podle potřeby změnit odkazy a barvy v kódu.

2. Poté uložte a zavřete toto okno s kódem, nyní, když zadáte text KTE do buňky A1 hlavního listu, bude karta List1 zbarvena červeně, když zadáte KTO do buňky A1, bude List2 zbarven zeleně a kdy zadáte KTW do buňky A1, bude list3 zbarven modře, viz screenshot:

barevný list dokumentu podle hodnoty 4


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (23)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Vážený pane.
laskavě mi pomozte, jak změnit barvu karty listu na základě data/dne.

např.: -
pokud je list č. 1 neděle, pak - záložka listu 'ČERVENÁ'
pokud je list č. 2 pondělí, pak - záložka listu „zelená“
pokud je list č. 3 úterý, pak - záložka listu „zelená“
pokud je list č. 4 středa, pak - záložka listu „zelená“
pokud je list č. 5 čtvrtek, pak - záložka listu „zelená“
pokud je list č. 6 pátek, pak - záložka listu 'Zelená'
pokud je list č. 7 sobota, pak - záložka listu 'Zelená'

laskavě mi pomozte s výše uvedeným problémem Excel.

Díky a pokud jde o
Faiz Ibn Uvaiz P.
Tento komentář byl moderátorem webu minimalizován
Váš popis je trochu vágní, pokud jde o to, o co se vlastně snažíte. Pokud je sešit pouze na týden, vybarvěte záložky. Pokud je doba trvání delší než týden, pak je řešení trochu složitější. Dokud problém neuvedete podrobně, je k dispozici několik řešení. Já a mnoho lidí nebudeme trávit čas kódováním 2,000 1 řešení pro vás zdarma. Ale podrobně popisujete problém, můžeme poskytnout XNUMX řešení.
Tento komentář byl moderátorem webu minimalizován
jak mohu změnit barvu karty v závislosti na počasí v řadě buněk je text
Tento komentář byl moderátorem webu minimalizován
Vzorec funguje pro „True“ – záložka listu je ČERVENÁ, takže je to skvělé, ale pokud jej změním z „True“ na „False“, chci, aby karta listu neměla „žádnou barvu“. Jaký je vzorec pro žádnou barvu na kartě listu, pokud není vybrána možnost „True“? Také pokud chci, aby vzorec byl pro skupinu buněk, např. A1:A30 jaký kód používám?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Shannone:
Následující kód VBA vám může udělat laskavost, zkuste to:

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Dim xRg jako rozsah
Nastavit xRg = Intersect(Target, Range("A1:A30"))
Pokud xRg není nic, pak Exit Sub
Vyberte možnost Case Target.Value
Případ "Pravda"
Me.Tab.Color = vbRed
Případ "nepravda"
Me.Tab.Color = False
Konec Vybrat
End Sub

Doufám, že vám to může pomoci!
Tento komentář byl moderátorem webu minimalizován
Existuje způsob, jak změnit barvu karty na základě následujícího: Mám hlavní kartu, kde jsou řádky 3-7 zbarveny modře a budou odpovídat odpovídajícím kartám 3-7 (které jsou pojmenovány na základě hodnot buněk v předloze v ty řádky), které bych chtěl obarvit modře. Pak jsou řady 8-12 obarveny zeleně a také odpovídají tabulkám 8-12 a tak dále.
Tento komentář byl moderátorem webu minimalizován
To byl úžasný trik.
Barvu tabulátoru jsem propojil na základě hodnoty buňky A1 (<>0 ČERVENÁ a =0 Zelená), makro se však spustí, pouze pokud vyberu A1 , stisknu F2 a poté Enter. Aniž byste to udělali, barva karty (na základě její hodnoty) by měla být řekněme Červená, ale zůstane zelená.
Používám excel 2007.
Tento komentář byl moderátorem webu minimalizován
Je možné, aby to fungovalo, když buňka A1 může mít všechny 3 odpovědi na samostatných řádcích v buňce? To znamená, že KTE, KTO a KTW jsou všechny přítomné v buňce, protože umožňuje více výběrů z rozevíracího seznamu.
Tento komentář byl moderátorem webu minimalizován
Snažím se použít tento kód a aplikovat ho na zaškrtávací políčko, takže když zaškrtnu políčko, barva se změní, pokud ho zruším, změní se zpět (mám hodnotu true=zelená, nepravda=červená, jinak=červená) . Ale když zaškrtnu a zruším zaškrtnutí, vyhodí chybu „potřebný objekt“


Private Sub CheckBox1_Click ()
_____If Target.Address = "$e$5" Pak 'chyba zde
__________Vyberte Case Target.Value
__________Případ "nepravda"
_______________Me.Tab.Color = vbRed
__________Případ "Pravda"
_______________Me.Tab.Color = vbGreen
__________Případ Jiný
_______________Me.Tab.Color = vbRed
__________Konec Vyberte
_____End If
End Sub

Zkopíroval jsem a vložil jsem to, abych viděl, že běží, a pak jsem to upravil podle svých potřeb, ale nenašel jsem způsob, jak to spustit.
Tento komentář byl moderátorem webu minimalizován
Vážení kolegové,
Prosím o pomoc. Potřebuji změnit barvu karty listu na základě hodnoty ve formátu [h]: mm. Například pokud je hodnota pod 20:00 - červená, >20:00 zelená.
Díky a jde!
Tento komentář byl moderátorem webu minimalizován
Vážení kolegové,
Prosím o pomoc. Potřebuji změnit barvu karty listu na základě hodnoty ve formátu [h]: mm. Například pokud je hodnota pod 20:00 - červená, >20:00 zelená.
Díky a jde!
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Viktore,
Níže uvedený kód VBA může vyřešit váš problém, zkuste to prosím, doufám, že vám může pomoci!

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Dim xStr jako řetězec
Dim xSN jako řetězec
Dim xDate jako řetězec
Ztlumit xAddress jako řetězec
Dim xArr() jako řetězec
Dim xI1 jako celé číslo
Dim xSM jako řetězec
xDatum = "20:00"
xAddress = "$A$1"
If Target.Address <> xAddress Then Exit Sub
xStr = Target.Text
xArr = Split(xStr, ":")
If (UBound(xArr) - LBound(xArr) + 1) > 2 Pak Exit Sub
xI1 = Int(xArr(0))
If (Len(xArr(0)) - 2) < 1 Potom
Pokud xI1 > 23, pak Exit Sub
Jiný
Konec Sub
End If
xSM = xArr(1)
Při chybě Přejít na Err01
If (Len(xSM) - 2) <> 0 Pak Exit Sub
Pokud Int(Left(xSM, 1)) > 5 Pak Exit Sub
Pokud Int(Right(xSM, 1)) > 10 Pak Exit Sub
Pokud xI1 >= 20 Pak
Me.Tab.Color = vbGreen
Jiný
Me.Tab.Color = vbRed
End If
Err01:
End Sub
Tento komentář byl moderátorem webu minimalizován
Vážený Skyyang,
Omlouváme se za příliš pozdní zpětnou vazbu. Tento vzorec funguje, když ručně změním hodnotu v buňce. Ale to nebylo to, co jsem potřeboval.
Hodnota buňky je výsledkem vzorce z rozdílových listů. Například toto je vzorec v buňce "O13-'520'!AD3". To znamená, že hodnota v této buňce se mění v závislosti na hodnotě v jiné buňce na jiném listu. Potřebuji, aby se barva listu automaticky změnila, když se změní hodnota v buňce "O13-'520'!AD3", když je hodnota v buňce "O13-'520'!AD3" pod 05:00 - červená , >20:00 zelená, mezi 05:00 a 20:00 hnědá.
Předem děkuji a jsem s pozdravem!
Tento komentář byl moderátorem webu minimalizován
Ahoj všichni, jak změním barvu karty na základě určité hodnoty ve sloupci více listů? dík
Tento komentář byl moderátorem webu minimalizován
Jak byste propojili kartu s hodnotou na jiné kartě. V mém příkladu mám jednu kartu se všemi informacemi, které se automaticky odfiltrují na různé karty. Každá karta se však zobrazí zeleně nebo červeně v závislosti na tom, zda je na hlavní kartě nevyrovnaný zůstatek. Lze to provést pomocí tohoto kódu, a pokud ano, kam zapíšu odkaz na hlavní list v rámci tohoto kódu?
Tento komentář byl moderátorem webu minimalizován
Ahoj,

Nikdy předtím kód v Excelu nedělal. Potřebuji kód, který dělá to, co dělá tento kód, ale potřebuji jiný parametr.

Co tedy potřebuji je:

Pokud hodnota buňky není 0 a/nebo pokud nějaká jiná buňka obsahuje čísla, pomocí count změňte barvu na červenou

Pokud je hodnota buňky 0 a ostatní buňky jsou prázdné, použijte počet, změňte barvu na zelenou
Tento komentář byl moderátorem webu minimalizován
Dobrý den, zkoušel jsem změnit barvu karty na základě hodnoty na samostatném listu s názvem Sledování, ale zdá se, že to nefunguje. dík




Soukromá dílčí tabulka_Změna (ByVal Target As Range)

'Aktualizovat Extendoffice 20160930

If Target.Address = "Tracking!$C$2" Then

Vyberte možnost Case Target.Value

pouzdro "ip"

Me.Tab.Color = vbRed

případ "w"

Me.Tab.Color = vbYellow

případ "c"

Me.Tab.Color = vbGreen

Case Else

Me.Tab.Color = vbBlue

Konec Vybrat

End If

End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Brade,
Aby kód fungoval správně, neměli byste do kódu vkládat název listu, použijte prosím následující kód: (klikněte na název listu, na kterém chcete tento kód spustit, a poté klikněte pravým tlačítkem na název listu a vyberte Zobrazit kód, poté vložte kód do modulu)

Soukromá dílčí tabulka_Změna (ByVal Target As Range)

'Aktualizovat Extendoffice 20160930

If Target.Address = "$C$2" Then

Vyberte možnost Case Target.Value

pouzdro "ip"

Me.Tab.Color = vbRed

případ "w"

Me.Tab.Color = vbYellow

případ "c"

Me.Tab.Color = vbGreen

Case Else

Me.Tab.Color = vbBlue

Konec Vybrat

End If

End Sub

Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Chci změnit barvu karty na základě jednoho ze 2 výsledků vzorce Mám vzorec = KDYŽ((AND(AA1="Obsazeno", AA2="Obsazeno", AA3="Obsazeno", AA4=" Obsazeno")), "Obsazeno", "Volné")
Potřebuji, aby byla karta červená, pokud je „Obsazeno“ a zelená, pokud je „Vakonná“. Kód výše v hlavním příspěvku však nerozpoznává výstup If Than
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Potřebuji pomoc
Potřebuji změnit barvu karty listu pouze v případě, že v určitém rozsahu buněk má dnešní datum
Řekni např.
Sloupec L obsahuje některá data ve formátu (13-May-22)
Jedna z hodnot buňky je dnešní datum, pak by se barva tabulátoru měla změnit na červenou
Prosím pomozte
Děkuji předem
Tento komentář byl moderátorem webu minimalizován
Chtěl bych, aby moje karta změnila barvu, pokud má nějaká buňka ve sloupci O nebo sloupci P hodnotu. Je to možné?

Děkuji!
Tento komentář byl moderátorem webu minimalizován
Chci nastavit barvu karty listu na základě barvy buňky j4 v každém listu. Existuje více než 18 karet a chcete aktualizovat barvy karet při otevření sešitu. Pokud nemohu aktualizovat při otevření, mohu spustit makro poté, co týmy aktualizují listy.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, dřevo
Chcete-li vyřešit svůj problém, použijte níže uvedený kód: (Poznámka: Zkopírujte a vložte níže uvedený kód do Tato pracovní kniha kódový režim)
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Call SetSheetColor
End Sub

Private Sub Workbook_Open()
Call SetSheetColor
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call SetSheetColor
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call SetSheetColor
End Sub

Sub SetSheetColor()
Dim xWShs As Sheets
Dim xRg As Range
Dim xFNum As Integer
Dim xSh As Worksheet
On Error Resume Next
Set xWShs = Application.ActiveWorkbook.Sheets
For xFNum = 1 To xWShs.Count
    Set xSh = xWShs.Item(xFNum)
    Set xRg = xSh.Range("J4")
    xSh.Tab.Color = xRg.Interior.Color
Next
End Sub


https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-color-sheet.png

Zkuste to prosím, doufám, že vám to pomůže!
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL