Stránka 1 z 1

Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 23 lis 2020 16:35
od metropolisCZ
Zdravím,

opět potřebuji poradit s Excelem, prosím.

Pracuji s Excelem, kde používám Query na vypsání dat z jiného sešitu. Sešit, kam se mají data napsat, je uzamčený pro úpravy a tím pádem klasické Refresh All nefunguje. Na netu jsem našel VBA kód, díky kterému jsem přiřadil makro k ikoně - sešit se odemkne, provedou se úpravy (Refresh) a sešit se zase uzamkne

V příloze je zjednodušený soubor - v sešitu Input zadáte hodnotu (město), v sešitu Output se pak přes query tyto hodnoty vypisují.

Moje otázka ale zní - jak zabránit uživateli, aby si zobrazil okno s VBA, kde najde heslo? V přiložném souboru je to "abc". To už můžu rovnou nechat celý sešit odemknutý. Což ale nechci, protože jsou tam jiná data a vzorce, které nechci ukazovat. Uživatel by měl mít možnost sešit pouze obnovit (Refresh).

Předem díky.

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 23 lis 2020 16:47
od ITCrowd
Myslím že nijak.
Osobně používám speciální funkci pro výpočet hesla. Samozřejmě to taky není dokonalé, ale obyčejný bfu šanci nemá.

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 23 lis 2020 16:59
od metropolisCZ
A můžu se zeptat jakou funkci?

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 23 lis 2020 17:10
od ITCrowd
překódováním tabulky ascii.

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 23 lis 2020 17:15
od metropolisCZ
OK, zeptal jsem se špatně, protože tohle je pro mě stejně španělská vesnice.

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 23 lis 2020 17:22
od ITCrowd
Tak to zjednoduším...
Vytvoř si pole proměnných, z nichž některé budou obsahovat správné kódy písmen hesla.
Pomocí for...next vybereš z tohoto pole jednotlivá písmena.
Uprostřed cyklu použiješ chr() - což převede ascii kód (číslo) na písmeno hesla
A písmena se dávají dohromady třeba pass=pass&chr()
Až cyklus doběhne, máš heslo.
Toto je nejjednodušší varianta.

Dodatečně přidáno po 2 minutách 4 vteřinách:
takže třeba chr(65)&chr(72)&chr(79)&chr(74) vrátí AHOJ.

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 24 lis 2020 05:10
od Grimm
Můžeš zaheslovat i VBEditor, pro zobrazení kódu bude požadováno heslo.
Ovšem i to se dá celkem jednoduše prolomit.

Pod záložkou Tools....
VBE Lock.png

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 24 lis 2020 13:32
od metropolisCZ
Grimm píše:Můžeš zaheslovat i VBEditor, pro zobrazení kódu bude požadováno heslo.
Ovšem i to se dá celkem jednoduše prolomit.

Pod záložkou Tools....

Tohle by bylo super a jednoduché řešení, ale nefunguje mi to. I když nastavím Lock a heslo, pak zamknu sešit, uložím, stejně se přes Developer dostanu na kód modulu a vidím zadané heslo.

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA

Napsal: 24 lis 2020 14:08
od Grimm
Soubor ještě zavři, po jeho znovuotevření by to mělo fungovat. Teď sem to zkoušel.

Re: Excel - zamknutí/odemknutí sešitu pomocí VBA  Vyřešeno

Napsal: 25 lis 2020 10:23
od metropolisCZ
Grimm píše:Soubor ještě zavři, po jeho znovuotevření by to mělo fungovat. Teď sem to zkoušel.


Moje chyba, už je to OK. Díky moc za řešení, přesně tohle jsem hledal. Vlákno zamykám.