Stránka 1 z 1

Excel - podmíněné formátování II. (vyřešeno)

Napsal: 28 srp 2005 00:38
od abc
Ahoj Mirasi,

po delší době se zase hlásím, všechno funguje super. Potřeboval bych
ještě jednu "maličkost". Zkoušel jsem to sám, ale akorát jsem zjistil, že
ve VBA "Range" je "buňka" a to je asi tak všechno co jsem pochopil. :-(
Těch záznámů v tabulce mam již skoro 600, prosím můžeš mi ještě
napsat "kód" na fitr k tomu sloupci, kam píšu datum zaplacení a jak mi
ty řádky potom "zešednou"?.
Potřeboval bych to tak, aby na listu byli 2 tlačítka: 1 tlač. = zaplacené,
2.tlač.=všechny. (příkazové tlačítko nebo přepínač???)
Vím, že by stačil "Automatický filtr", ale tento soubor přeposílám několika lidem a ti jsou rádi, že si alespoň ten soubor otevřou v poště :D
Dík
abc

Napsal: 28 srp 2005 10:01
od miras
Obávám se že ti nerozumím :lol:
Takže, na list přidáme dvě tlačítka a po stisknutí jednoho či druhého se má stát přesně co?
Veškerej kód už máš k dispozici. Obarvení řádku našedo je zařízený tou podmínkou
If Cells(radek, "C").Value <> "" Then

Tady se říká, že jestliže je hodnota daný buňky v aktuálním řádku různá (<>) od prázdnýho řetězce (""), řádek se obarví našedo a přejde se na další řádek. Pokud je ona buňka prázdná, začne se vyhodnocovat část "Else", kde už se barevně odlišujou různý města.

Btw: Range je oblast, buňka je Cell :wink:.

Excel - podmíněné formátování II.

Napsal: 28 srp 2005 19:32
od abc
No asi takhle,
všechno se "barví" jak má. Ale do toho kódu, potřebuju ještě někam
dopsat ten filtr. Takže:
1. tlačítko na listu = všechny řádky a je jedno jaká jsou to města a
zda je zaplaceno nebo není tj. vlastně to co mám teď - žádný filtr - vidim
všechny řádky >>> takže 1.tlačítko = zrušení filtru.
2.tlačítko na listu = filtr, pouze nezaplacené, tj. zobrazí se pouze řádky obarvené podle měst = filtr na nezaplacené.
Možná že to "dělá" "AdvancedFilter" :D

  Vyřešeno

Napsal: 29 srp 2005 12:39
od mikel
Tady bych mohl pomoct, ale protože neznám tvoji tabulku, budeš si to muset změnit podle tvé struktury.

Nejdříve si vytvoř tlačítko pomocí nabídky Ovládací prvky (pozor, ne pomocí Formuláře) a klikem pravého myšítka na tlačítku zobraz podmenu. Vyber Vlastnosti a změň položky (Name) a Caption.
Obrázek
(Name) je interní název Excelu, se kterým pracuje a Caption je text v tlačítku. Stejným způsobem vytvoř druhé tlačítko. Já jsem použil tyto názvy:
tlačítko 1 - (Name) = AllButton, Caption = Všechny
tlačítko 2 - (Name) = EmptyButton, Caption = Nezaplacené

Potom se přepni do Visual Basicu do listu, kde máš tu tabulku. Nedávej to modulu, kde máš ostatní makra).
Obrázek
V tomto případě je to list se jménem Data (List 2 je znova interní název Excelu).

Do sekce pro psaní kódu napiš tyhle makra:
Obrázek
Pak si musíš upravit toto:
1. Předpokládám, že tabulku neustále upravuješ, proto je tu proměnná konec, do které se uloží číslo posledního řádku tabulky. Ale do kódu Range("A2").End(xlDown).Row musíš místo A2 dát adresu první buňky ve sloupci tabulky, kde nejsou prázdné buňky - pokud by v tomto sloupci byla nějaká buňka prázdná (nevyplněná data), tak by první prázdná buňka, kterou najde, byla pro něj konec tabulky. Předpokládám, že máš takový sloupec (např. datum nebo číslo faktury nebo něco jiného).
Díky tomuto opatření se nebudeš muset starat, kolik řádků máš v tabulce, protože si vždy najde poslední řádek.
2. V kódu Set bunka = Range("Q3") dej namísto Q3 první buňku ve sloupci, kde máš datum zaplacení (nesmí to být hlavička, ale první řádek, kde má být napsána hodnota). Projde celou tabulku a skryje všechny řádky, kde je nějaký datum.

Pokud bys měl s něčím problém, tak mi můžeš poslat ukázku tvojí tabulky s vymyšlenýmy daty a já to upravím přímo pro tebe.

Napsal: 30 srp 2005 16:20
od miras
2mikel: Jedná se o to, že user abc je "starý známý", se kterým sem jedno makro řešil už kdysi dávno, to si tu ješte ani nebyl registrovanej :wink:
Původní problém je tady
2abc: Mám teď minimum času, ani neprozkoumám co mikelův kód provádí, ale jestli to není to co bylo potřeba a mikel si projde můj výtvor, určitě bude lehce schopnej ho poupravit, případně napsat zcela znovu :D
Ja bych na to mrknul (možná) o víkendu.
-----------------
Poznámka pod čarou. Teď nedávno sem zjistil jak přidávat položky do menu, vypadá to mnohem líp jak tlačítka, strašně se mě to líbí a všude to používám :lol:

Kód: Vybrat vše

Private Sub Workbook_Open()
Application.Caption = "Titulek vpravo nahore"
With Application.MenuBars(xlWorksheet)
    With .Menus.Add("Novy &menu")
      .MenuItems.Add Caption:="Nejaky &Podmenu", OnAction:="Procedura"
    End With
End With
End Sub


V případě že už je těch položek na listu hodně, nechala by se práce zrychlit (podstatně), nastavením vlastnosti ScreenUpdating na False.

Napsal: 31 srp 2005 12:03
od mikel
Tak díky mirasovi jsem to mohl předělat na původní tabulku. A jak miras předpokládal, nedalo mi to a pohrál jsem si i s původním makrem na obarvování měst. :lol:
Postup je stejný, jak jsem popsal v předchozím příspěvku - začni s vytvořením tlačítek u tabulky (nejlepší to bude v prvním řádku u názvu tabulky). Změň jména tlačítek, jak jsem tam popsal a navíc na té samé kartě s vlastnostmi je položka PrintObject. když její hodnotu změníš na False, tak se tlačítka nebudou tisknout.
Pak se přepni do Visual Basicu a vyber si ve objektové struktuře tvého souboru list s tabulkou. Jak je vidět na obrázku vlevo, tabulka je na listu s názvem List1 (zeleně podsvícen) a tam je třeba napsat všechna makra.
Zelené texty jsou jenom vysvětlivky, které nemusíš přepisovat.
Obrázek

První makro je to přepracované původní makro. Aby mohlo fungovat, musíš mít list s názvem List2, na kterém si ve sloupci A napíšeš města, která používáš a označíš si je barvou, jakou na ně chceš použít (viz obrázek).
Obrázek
Když v tabulce na Listu1 napíšeš nové město, makro si ho najde v seznamu na Listu2 a obarví řádek tabulky nadefinovanou barvou. Tento List2 můžeš skrýt, aby nebyl viditelný. Uděláš to v menu Formát/List/Skrýt a znova ho zobrazíš podobně - Formát/List/Zobrazit (nabídně ti seznam skrytých listů a ty si vybereš ten, který chceš zobrazit). Tak ostatní uživatelé neuvidí tento list a ty, když budeš chtít přidat nějaké město do seznamu, tak si ho zobrazíš, přidáš město a znova skryješ. :lol:
Pokud se ti nechce měnit mirasovo makro, tak si přepiš pouze 2. a 3.makro.

Napsal: 31 srp 2005 12:42
od mikel
2miras: taky používám tento způsob, ale jako vždy, mám to makro napsáno trodhu jinak. :lol: Tady je ukázka:
Obrázek

A takhle vypadá výsledek:
Obrázek

Navíc mám tyto makra uložené jako doplněk MS Excel, takže se mi otevřou automaticky při spuštění Excelu ve skrytém tvaru a můžu je kdykoliv použít. :number1: :lol:

P.S. Pro úplnost, kdyby někoho zarazilo, že se toto makro nemůže spustit automaticky při otevření souboru (díky použití jako doplňku je to fakticky při startu Excelu) mám v objektu ThisWorkbook toto makro:
Private Sub Workbook_Open()
CreateMenu
End Sub

Excel - Podmíněné formátování II.

Napsal: 04 zář 2005 11:15
od abc
Mikeli, můžeš ty makra do zprávy vložit ještě jednou, já vidim místo obrázku akorát ty "křížky" (http://das-konsult.cz/forum/album_pic.php?pic_id=343), nebo jako to vkládá Miras... Dík

Napsal: 04 zář 2005 14:56
od mikel
Nevím, proč ti to nešlo zobrazit. Možná proto, že jako neregistrovaný uživatel nemůžeš zobrazit obrázky, které mám v osobní galerii? :idea:
Tak jsem je nakopíroval do Veřejné kategorie a změnil jsem na ně odkazy v příspěvku.
Doufám, že to teď půjde. :evil: :lol:

Napsal: 04 zář 2005 15:55
od miras
mikel píše:Možná proto, že jako neregistrovaný uživatel nemůžeš zobrazit obrázky, které mám v osobní galerii? :idea:

Ano, je to tak, neregistrovaní nemůžou zobrazit obrázky z osobních galerií.
Krom toho v osobní galerii je omezenej počet obrázků, nevím přesně, ale je to míň jak 20. Doporučení zní do osobní galeri umísťovat obrázky jen v odůvodněných případech a s rozmyslem :wink:

Napsal: 05 zář 2005 08:22
od mikel
Tak dobře, přehodil jsem obrázky do veřejné kategorie a upravil příspěvky. Ale makro pro vytvoření nového menu v Excelu jsem nechal v osobní galerii, ať mají registrovaní uživatelé nějakou výhodu. :lol:

Napsal: 05 zář 2005 10:28
od miras
Ano, přesně tak, nechá se to využít v případě, kdy z nějakýho důvodu mají něco vidět pouze a jen registrovaní :wink:

Téma přesouvám, ať to máme pěkně pohromadě 8)