Použitie podmieneného formátovania v programe Excel VBA

Podmienené formátovanie programu Excel

Podmienené formátovanie programu Excel vám umožňuje definovať pravidlá, ktoré určujú formátovanie buniek.

Môžete napríklad vytvoriť pravidlo, ktoré zvýrazní bunky, ktoré spĺňajú určité kritériá. Medzi príklady patrí:

  • Čísla, ktoré spadajú do určitého rozsahu (napr. Menej ako 0).
  • Najlepších 10 položiek v zozname.
  • Vytvorenie „tepelnej mapy“.
  • Pravidlá založené na vzorci pre prakticky akékoľvek podmienené formátovanie.

V programe Excel nájdete podmienené formátovanie na páse s nástrojmi v časti Domov> Štýly (ALT> H> L).

Ak si chcete vytvoriť vlastné pravidlo, kliknite na „Nové pravidlo“ a otvorí sa nové okno:

Podmienené formátovanie vo VBA

K všetkým týmto funkciám podmieneného formátovania je prístup pomocou VBA.

Upozorňujeme, že keď nastavíte podmienené formátovanie z kódu VBA, vaše nové parametre sa zobrazia v okne podmieneného formátovania klientskeho rozhrania programu Excel a budú pre používateľa viditeľné. Užívateľ ich bude môcť upravovať alebo odstraňovať, pokiaľ pracovný hárok nezamknete.

Pravidlá podmieneného formátovania sa uložia aj pri uložení pracovného hárka

Pravidlá podmieneného formátovania sa vzťahujú konkrétne na konkrétny pracovný hárok a na určitý rozsah buniek. Ak sú potrebné inde v zošite, musia byť tiež uvedené v tomto pracovnom hárku.

Praktické využitie podmieneného formátovania vo VBA

Do pracovného hárka môže byť importovaný veľký počet nespracovaných údajov zo súboru CSV (hodnoty oddelené čiarkami) alebo z databázovej tabuľky alebo dotazu. Môže to prúdiť do hlavného panela alebo zostavy so zmenou čísel importovaných z jedného obdobia do druhého.

Ak sa číslo zmení a je mimo prijateľného rozsahu, môžete na to upozorniť napr. farba pozadia bunky červenou farbou, a môžete to urobiť nastavením podmieneného formátovania. Týmto spôsobom bude používateľ okamžite privedený na toto číslo a potom môže zistiť, prečo sa to deje.

VBA môžete použiť na zapnutie alebo vypnutie podmieneného formátovania. VBA môžete použiť na vymazanie pravidiel pre celý rad buniek alebo ich znova zapnúť. Môže nastať situácia, keď existuje úplne dobrý dôvod na neobvyklé číslo, ale keď používateľ predstaví informačný panel alebo sa prihlási na vyššej úrovni manažmentu, chce mať možnosť odstrániť „poplašné zvončeky“.

Na nespracovaných importovaných údajoch môžete tiež upozorniť na to, kde sú čísla smiešne veľké alebo smiešne malé. Rozsah importovaných údajov má zvyčajne inú veľkosť pre každé obdobie, takže pomocou jazyka VBA môžete vyhodnotiť veľkosť nového rozsahu údajov a vložiť podmienené formátovanie iba pre tento rozsah.

Môžete tiež mať situáciu, keď existuje triedený zoznam mien s číselnými hodnotami oproti každému z nich, napr. mzda zamestnanca, známky zo skúšky. Pri podmienenom formátovaní môžete pomocou postupných farieb prechádzať od najvyšších k najnižším, čo na účely prezentácie vyzerá veľmi pôsobivo.

Zoznam mien však nebude mať vždy statickú veľkosť a pomocou kódu VBA môžete aktualizovať škálu odstupňovaných farieb podľa zmien vo veľkosti rozsahu.

Jednoduchý príklad vytvorenia podmieneného formátu na rozsahu

Tento príklad nastavuje podmienené formátovanie pre rozsah buniek (A1: A10) v hárku. Ak je číslo v rozsahu od 100 do 150, farba pozadia bunky bude červená, inak nebude mať žiadnu farbu.

1234567891011121314 Sub podmieňujúceFormattingExample ()„Definujte rozsahDim MyRange As RangeNastaviť rozsah = rozsah („A1: A10“)„Odstráňte existujúce podmienené formátovanie z rozsahuMyRange.FormatConditions.Delete„Použiť podmienené formátovanieMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlBetween, _Formula1: = "= 100", Formula2: = "= 150"MyRange.FormatConditions (1). Interior.Color = RGB (255, 0, 0)Koniec pod

Všimnite si, že najskôr definujeme rozsah MyRange použiť podmienené formátovanie.

Ďalej odstránime akékoľvek existujúce podmienené formátovanie rozsahu. Je vhodné zabrániť tomu, aby sa rovnaké pravidlo pridávalo pri každom spustení kódu (samozrejme to nebude vhodné za každých okolností).

Farby sú dané číselnými hodnotami. Na to je dobré použiť notáciu RGB (červená, zelená, modrá). Na to môžete použiť štandardné farebné konštanty napr. vbRed, vbBlue, ale máte obmedzený počet osem farebných možností.

K dispozícii je viac ako 16,7 milióna farieb a pomocou RGB k nim máte prístup. Je to oveľa jednoduchšie, ako sa snažiť zapamätať si, ktoré číslo zodpovedá akej farbe. Každé z troch čísel farieb RGB je od 0 do 255.

Upozorňujeme, že parameter „xlBetween“ je zahrnutý, takže podmienku spĺňajú hodnoty buniek 100 alebo 150.

Viacpodmienečné formátovanie

Možno budete chcieť v rámci svojho rozsahu údajov nastaviť niekoľko podmienených pravidiel, aby sa na všetky hodnoty v rozsahu vzťahovali rôzne podmienky:

12345678910111213141516171819 Sub MultipleConditionalFormattingExample ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah MyRange = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete„Pridajte prvé pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlBetween, _Formula1: = "= 100", Formula2: = "= 150"MyRange.FormatConditions (1). Interior.Color = RGB (255, 0, 0)„Pridajte druhé pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlLess, _Formula1: = "= 100"MyRange.FormatConditions (2) .Interior.Color = vbBlue„Pridajte tretie pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlGreater, _Formula1: = "= 150"MyRange.FormatConditions (3) .Interior.Color = vbYellowKoniec pod

Tento príklad nastavuje prvé pravidlo ako predtým, ak je hodnota bunky medzi 100 a 150, farba bunky je červená.

Potom sa pridajú ďalšie dve pravidlá. Ak je hodnota bunky menšia ako 100, farba bunky je modrá a ak je väčšia ako 150, farba bunky je žltá.

V tomto prípade musíte zaistiť, aby boli pokryté všetky možnosti čísel a aby sa pravidlá neprekrývali.

Ak sú prázdne bunky v tomto rozsahu, zobrazia sa ako modré, pretože Excel ich stále považuje za hodnotu nižšiu ako 100.

Cesta okolo je pridať do výrazu inú podmienku. Toto je potrebné pridať ako prvé pravidlo podmienky v kóde. Správne poradie vykonania je veľmi dôležité tam, kde existuje viacero pravidiel, inak môžu byť výsledky nepredvídateľné.

1234567891011121314151617181920212223 Sub MultipleConditionalFormattingExample ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah MyRange = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete„Pridajte prvé pravidloMyRange.FormatConditions.Add Typ: = xlExpression, Formula1: = _"= LEN (TRIM (A1)) = 0"MyRange.FormatConditions (1) .Interior.Pattern = xlNone„Pridajte druhé pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlBetween, _Formula1: = "= 100", Formula2: = "= 150"MyRange.FormatConditions (2) .Interior.Color = RGB (255, 0, 0)„Pridajte tretie pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlLess, _Formula1: = "= 100"MyRange.FormatConditions (3) .Interior.Color = vbBlue„Pridajte štvrté pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlGreater, _Formula1: = "= 150"MyRange.FormatConditions (4). Interior.Color = RGB (0, 255, 0)Koniec pod

Používa sa typ xlExpression a potom sa pomocou štandardného vzorca v Exceli určí, či je bunka namiesto číselnej hodnoty prázdna.

Objekt FormatConditions je súčasťou objektu Range. Funguje to rovnako ako kolekcia s indexom začínajúcim na 1. Tento objekt môžete iterovať pomocou cyklu For… Next alebo For… Every.

Odstránenie pravidla

Niekedy môže byť potrebné odstrániť jednotlivé pravidlo zo sady viacerých pravidiel, ak nevyhovuje požiadavkám na údaje.

12345678910111213 Sub DeleteConditionalFormattingExample ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete„Pridajte prvé pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlBetween, _Formula1: = "= 100", Formula2: = "= 150"MyRange.FormatConditions (1). Interior.Color = RGB (255, 0, 0)„Odstrániť pravidloMyRange.FormatConditions (1). OdstrániťKoniec pod

Tento kód vytvorí nové pravidlo pre rozsah A1: A10 a potom ho odstráni. Na vymazanie musíte použiť správne číslo indexu, preto skontrolujte „Spravovať pravidlá“ na klientskom rozhraní Excelu (toto zobrazí pravidlá v poradí spustenia), aby ste sa uistili, že získate správne číslo indexu. Všimnite si toho, že ak odstránite pravidlo podmieneného formátovania vo VBA, v programe Excel nie je k dispozícii žiadna možnosť vrátenia späť, na rozdiel od toho, ak to robíte prostredníctvom klientskeho rozhrania programu Excel.

Zmena pravidla

Pretože pravidlá sú zbierkou objektov založených na zadanom rozsahu, v konkrétnych pravidlách môžete ľahko vykonávať zmeny pomocou jazyka VBA. Skutočné vlastnosti po pridaní pravidla sú len na čítanie, ale môžete ich zmeniť pomocou metódy Upraviť. Vlastnosti, ako sú farby, sa dajú čítať / zapisovať.

123456789101112131415 Sub ChangeConditionalFormattingExample ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah MyRange = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete„Pridajte prvé pravidloMyRange.FormatConditions.Add Typ: = xlCellValue, operátor: = xlBetween, _Formula1: = "= 100", Formula2: = "= 150"MyRange.FormatConditions (1). Interior.Color = RGB (255, 0, 0)„Zmeniť pravidloMyRange.FormatConditions (1). Upraviť xlCellValue, xlLess, "10"„Zmeňte farbu pravidlaMyRange.FormatConditions (1) .Interior.Color = vbGreenKoniec pod

Tento kód vytvorí objekt rozsahu (A1: A10) a pridá pravidlo pre čísla od 100 do 150. Ak je podmienka splnená, farba bunky sa zmení na červenú.

Kód potom zmení pravidlo na čísla menšie ako 10. Ak je podmienka splnená, farba bunky sa teraz zmení na zelenú.

Použitie odstupňovanej farebnej schémy

Podmienené formátovanie programu Excel má spôsob, ako používať odstupňované farby na rade čísel bežiacich vzostupne alebo zostupne.

Je to veľmi užitočné tam, kde máte údaje, ako sú údaje o predaji podľa geografickej oblasti, teplôt mesta alebo vzdialenosti medzi mestami. Pri použití jazyka VBA máte ďalšiu výhodu v tom, že si môžete vybrať vlastnú odstupňovanú farebnú schému, a nie štandardné schémy ponúkané v klientskom rozhraní programu Excel.

1234567891011121314151617181920212223242526272829 Podstupňované farby ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah MyRange = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete„Definujte typ stupniceMyRange.FormatConditions.AddColorScale ColorScaleType: = 3'Vyberte farbu pre najnižšiu hodnotu v rozsahuMyRange.FormatConditions (1) .ColorScaleCriteria (1). Typ = _xlConditionValueLowestValueS MyRange.FormatConditions (1) .ColorScaleCriteria (1) .FormatColor. Farba = 7039480Ukončiť s'Vyberte farbu pre stredné hodnoty v rozsahuMyRange.FormatConditions (1) .ColorScaleCriteria (2). Typ = _xlConditionValuePercentileMyRange.FormatConditions (1) .ColorScaleCriteria (2) .Hodnota = 50'Vyberte farbu pre stredový bod rozsahuS MyRange.FormatConditions (1) .ColorScaleCriteria (2) .FormatColor. Farba = 8711167Ukončiť s'Vyberte farbu pre najvyššiu hodnotu v rozsahuMyRange.FormatConditions (1) .ColorScaleCriteria (3). Typ = _xlConditionValueHighestValueS MyRange.FormatConditions (1) .ColorScaleCriteria (3) .FormatColor.Farba = 8109667Ukončiť sKoniec pod

Keď je tento kód spustený, graduje farby buniek podľa vzostupných hodnôt v rozsahu A1: A10.

Je to veľmi pôsobivý spôsob zobrazovania údajov a určite upúta pozornosť používateľov.

Podmienené formátovanie pre chybové hodnoty

Keď máte obrovské množstvo údajov, vo vašich rôznych pracovných hárkoch vám môže ľahko chýbať chybová hodnota. Ak sa to používateľovi predloží bez toho, aby sa to vyriešilo, mohlo by to viesť k veľkým problémom a používateľ by stratil dôveru v čísla. Na vyhodnotenie bunky sa používa typ pravidla xlExpression a excelová funkcia IsError.

Môžete vytvoriť kód tak, aby všetky bunky s chybami mali červenú farbu buniek:

1234567891011 PodchybaConditionalFormattingExample ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete'Pridať pravidlo chybyMyRange.FormatConditions.Add Typ: = xlExpression, Formula1: = "= IsError (A1) = true"„Nastavte farbu interiéru na červenúMyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)Koniec pod

Podmienené formátovanie dátumov v minulosti

Môžete mať importované údaje tam, kde chcete zvýrazniť dátumy, ktoré sú v minulosti. Príkladom toho môže byť správa dlžníka, kde chcete, aby vynikli všetky staré dátumy faktúr staršie ako 30 dní.

Tento kód používa na vyhodnotenie dátumov typ pravidla xlExpression a funkciu programu Excel.

1234567891011 Sub DateInPastConditionalFormattingExample ()Dim MyRange As Range'Vytvorte objekt rozsahu na základe stĺpca dátumovNastaviť rozsah = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete'Pridať chybové pravidlo pre dátumy v minulostiMyRange.FormatConditions.Add Typ: = xlExpression, Formula1: = "= Teraz ()-A1> 30"„Nastavte farbu interiéru na červenúMyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)Koniec pod

Tento kód zaberie rozsah dátumov v rozsahu A1: A10 a nastaví farbu bunky na červenú pre akýkoľvek dátum, ktorý je v minulosti viac ako 30 dní.

Vo vzorci, ktorý sa používa v podmienke, Now () uvádza aktuálny dátum a čas. Toto bude pokračovať v prepočte vždy, keď sa prepočíta pracovný hárok, takže formátovanie sa zmení zo dňa na deň.

Použitie údajových pruhov v podmienenom formátovaní VBA

VBA môžete použiť na pridanie dátových pruhov do rozsahu čísel. Sú to takmer ako malé grafy a poskytujú okamžitý prehľad o tom, aké veľké sú čísla vo vzájomnom vzťahu. Akceptovaním predvolených hodnôt pre dátové pruhy je kód veľmi ľahko zapísateľný.

123456 Sub DataBarFormattingExample ()Dim MyRange As RangeNastaviť rozsah MyRange = rozsah („A1: A10“)MyRange.FormatConditions.DeleteMyRange.FormatConditions.AddDatabarKoniec pod

Vaše údaje budú v pracovnom hárku vyzerať takto:

Použitie ikon v podmienenom formátovaní VBA

Podmienené formátovanie môžete použiť na vloženie ikon vedľa čísel do pracovného hárka. Ikonami môžu byť šípky alebo kruhy alebo rôzne iné tvary. V tomto prípade kód pridá k číslam ikony šípok na základe ich percentuálnych hodnôt:

12345678910111213141516171819202122232425 Vedľajšie sady ikonExample ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete„Pridajte k objektu FormatConditions sadu ikonMyRange.FormatConditions.AddIconSetCondition„Nastavte sadu ikon na šípky - podmienka 1With MyRange.FormatConditions (1).IconSet = ActiveWorkbook.IconSets (xl3Arrows)Ukončiť s'nastavte kritériá ikon pre požadovanú percentuálnu hodnotu - podmienka 2With MyRange.FormatConditions (1) .IconCriteria (2).Typ = xlConditionValuePercent.Hodnota = 33.Operátor = xlGreaterEqualUkončiť s'nastavte kritériá ikon pre požadovanú percentuálnu hodnotu - podmienka 3With MyRange.FormatConditions (1) .IconCriteria (3).Typ = xlConditionValuePercent.Hodnota = 67.Operátor = xlGreaterEqualUkončiť sKoniec pod

To poskytne okamžitý prehľad o tom, či je číslo vysoké alebo nízke. Po spustení tohto kódu bude váš pracovný hárok vyzerať takto:

Použitie podmieneného formátovania na zvýraznenie prvej päťky

Kód VBA môžete použiť na zvýraznenie 5 najlepších čísel v dátovom rozsahu. Používate parameter s názvom „AddTop10“, ale poradové číslo v kóde môžete upraviť na 5. Používateľ si môže želať vidieť najvyššie čísla v rozsahu bez toho, aby musel údaje najskôr triediť.

1234567891011121314151617181920212223 Sub Top5Priklad ()Dim MyRange As Range'Vytvorte objekt rozsahuNastaviť rozsah MyRange = rozsah („A1: A10“)'Odstráňte predchádzajúce podmienené formátyMyRange.FormatConditions.Delete„Pridajte podmienku Top10MyRange.FormatConditions.AddTop10With MyRange.FormatConditions (1)„Nastaviť parameter zhora nadol.TopBottom = xlTop10Top„Nastaviť iba top 5. Poradie = 5Ukončiť sS MyRange.FormatConditions (1). Písmo'Nastavte farbu písma.Farba = -16383844Ukončiť sS MyRange.FormatConditions (1). Interiér'Nastavte farbu pozadia bunky. Farba = 13551615Ukončiť sKoniec pod

Údaje vo vašom pracovnom hárku by po spustení kódu vyzerali takto:

Všimnite si toho, že hodnota 145 sa zobrazí dvakrát, takže je zvýraznených šesť buniek.

Význam parametrov StopIfTrue a SetFirstPriority

StopIfTrue je dôležité, ak má rozsah buniek viacero pravidiel podmieneného formátovania. Jedna bunka v rozsahu môže spĺňať prvé pravidlo, ale môže vyhovovať aj nasledujúcim pravidlám. Ako vývojár môžete chcieť, aby formátovanie zobrazoval iba pre prvé pravidlo, na ktoré príde. Ostatné kritériá pravidiel sa môžu prekrývať a môžu spôsobiť nechcené zmeny, ak im to umožní pokračovať v zozname pravidiel.

Predvolená hodnota tohto parametra je True, ale môžete ju zmeniť, ak chcete, aby sa zohľadnili všetky ostatné pravidlá pre túto bunku:

1 MyRange. FormatConditions (1) .StopIfTrue = False

Parameter SetFirstPriority určuje, či bude pravidlo podmienky vyhodnotené ako prvé, ak pre túto bunku existuje viacero pravidiel.

1 MyRange. FormatConditions (1). SetFirstPriority

Tým sa pozícia tohto pravidla presunie na pozíciu 1 v rámci súboru podmienok formátu a všetky ostatné pravidlá sa posunú nadol so zmenenými číslami indexu. Dávajte si pozor, ak robíte akékoľvek zmeny pravidiel v kóde pomocou indexových čísel. Musíte sa uistiť, že meníte alebo odstraňujete správne pravidlo.

Prioritu pravidla môžete zmeniť:

1 MyRange. FormatConditions (1). Priorita = 3

To zmení relatívne pozície všetkých ostatných pravidiel v zozname podmieneného formátu.

Použitie podmieneného formátovania odkazujúceho na iné hodnoty buniek

To je jedna vec, ktorú podmienené formátovanie v Exceli nedokáže. Na tento účel si však môžete vytvoriť vlastný kód VBA.

Predpokladajme, že máte stĺpec údajov a v susednej bunke ku každému číslu je nejaký text, ktorý naznačuje, aké formátovanie by sa malo vykonať na každom čísle.

Nasledujúci kód spustí váš zoznam čísiel, vyhľadá v susednej bunke formátovanie textu a potom číslo naformátuje podľa potreby:

123456789101112131415161718192021 Sub ReferToAnotherCellForConditionalFormatting ()„Vytvorte premenné, ktoré budú uchovávať počet riadkov pre tabuľkové údajeDim RRow As Long, N As Long'Zachyťte počet riadkov v rámci rozsahu tabuľkových údajovRRow = ActiveSheet.UsedRange.Rows.Count„Opakujte všetky riadky v rozsahu tabuľkových údajovPre N = 1 až RRow„Na vyhodnotenie formátovania podľa stĺpca 2 použite príkaz Select CaseVyberte položku Case ActiveSheet.Cells (N, 2). Hodnota„Otočte farbu interiéru na modrúPrípad "modrý"ActiveSheet.Cells (N, 1). Interior.Color = vbBlue„Otočte farbu interiéru na červenúPrípad "červený"ActiveSheet.Cells (N, 1). Interior.Color = vbRed„Otočte farbu interiéru na zelenúPrípad "zelený"ActiveSheet.Cells (N, 1). Interior.Color = vbGreenUkončiť výberĎalej N.Koniec pod

Po spustení tohto kódu bude váš pracovný hárok teraz vyzerať takto:

Bunky, na ktoré sa odkazuje pri formátovaní, môžu byť kdekoľvek v pracovnom hárku alebo dokonca na inom pracovnom hárku v zošite. Ako podmienku formátovania môžete použiť ľubovoľnú formu textu a pri použití, na ktoré by ste tento kód mohli vložiť, ste obmedzení iba svojou predstavivosťou.

Operátory, ktoré je možné použiť v príkazoch podmieneného formátovania

Ako ste videli v predchádzajúcich príkladoch, na určenie toho, ako budú hodnotené hodnoty podmienok, napr. xlMedzi tým.

Existuje niekoľko týchto operátorov, ktoré je možné použiť v závislosti od toho, ako chcete zadať kritériá pravidiel.

názov Hodnota Popis
xlMedzi tým 1 Medzi. Možno použiť iba vtedy, ak sú k dispozícii dva vzorce.
xlRovnaké 3 Rovnaká.
xlVäčšie 5 Väčší než.
xlGreaterEqual 7 Väčšie alebo rovné.
xlMenej 6 Menej ako.
xlLessEqual 8 Menej alebo rovno.
xlNie medzi nimi 2 Nie medzi. Možno použiť iba vtedy, ak sú k dispozícii dva vzorce.
xlNepEqual 4 Nerovná sa.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave