Stránka 1 z 1

VBA marko - nastavení filtrů sešitu/souboru při otev

Napsal: 18 čer 2014 14:54
od Karbos
Dobrý den,
potřeboval bych poradit s makrem v MS EXCEL - potřebuji, aby při otevření sešitu byly veškeré filtry nastaveny na zobrazení veškerých hodnot.

Zápis makra:

Sub Auto_open()

On Error Resume Next
ActiveSheet.ShowAllData

End Sub

Sice funguje, ale pouze u nezamčeného sešitu. Sešit potřebuji zamklý (ochrana proti smazání vzorců,...) a tam už to nefunguje. Umíte někdo vyřešit?

Díky

Re: VBA marko - nastavení filtrů sešitu/souboru při otev

Napsal: 18 čer 2014 15:23
od Azuzula
Ahoj, je to jednoduché
V tomhle pomůže i záznamník maker ;) Odemknout list, provést úpravy a list zase zamknout. Záznamník bohužel heslo nanahraje, tak ti přikládám ukázku jak by to mělo vypadat.

Kód: Vybrat vše

Sub Auto_open()
On Error Resume Next
ActiveSheet.Unprotect Password:="heslo"
ActiveSheet.ShowAllData
ActiveSheet.Protect Password:="heslo"
End Sub

Re: VBA marko - nastavení filtrů sešitu/souboru při otev

Napsal: 18 čer 2014 16:21
od Karbos
Ahoj,
tohle funguje, fajn.

Problémy jsou ale dva:
- i při zamčení listu a sešitu se uživatel dostane do VBA editoru a vidí heslo, dokonce odsraní makro!
- makro odemkne soubor, provede akci a zavře. Při uzamčení sešitu nerespektuje volby posledního uzamčení v menu "akce povolené všem uživatelůmn listu" , což v mém případě znamená, že nepovolí např. používat automatický filtr.

V makrech začínám, asi jsou to dost laický dotazy...

Re: VBA marko - nastavení filtrů sešitu/souboru při otev  Vyřešeno

Napsal: 18 čer 2014 17:36
od Azuzula
Metoda Protect má spoustu nastavení která stačí přidat, pro povolení filtrace bude vypadat následovně

Kód: Vybrat vše

ActiveSheet.Protect Password:="heslo", AllowFiltering:=True


V nápovědě pod heslem "worksheet.protect method" nebo na http://msdn.microsoft.com/en-us/library ... 15%29.aspx se dozvíš všechny nastavitelné parametry metody protect.

Přístup do modulu VBA se dá zaheslovat, aby se tam nedostala neoprávněná osoba.
Menu "Tools" > "VBAprojectProperties" > záložka "Protection" > zaškrtnout "Lock project for viewing" + zadat heslo

Re: VBA marko - nastavení filtrů sešitu/souboru při otev

Napsal: 18 čer 2014 20:43
od cmuch
Jen pro doplnění.
Práci se zamknutým listem můžeš v makru nastavit takto, napsat hned na začátem makra.
Nemusí se psát Unprotect a pak Protect.

Kód: Vybrat vše

ActiveSheet.Protect Password:="heslo", UserInterfaceOnly:=True


To jak se má zamknutý list chovat si můžeš nastavit ručně ( karta Revize - Zamknout list ), nemusíš vypisovat v makru.

Re: VBA marko - nastavení filtrů sešitu/souboru při otev

Napsal: 19 čer 2014 08:23
od Karbos
Super, díky. Hlavně ta stránka s nápovědou řeší mnohé:-)