locked
Excel 2007 - zmknutý list versus ovládací prvky s makrem ovládající rychlý filtr (VB) RRS feed

  • Dotaz

  • Vážení exceloví mágové,

    nevěděl by někdo prosím, jestli se dá nějakým způsobem použít tlačítko s přiřazeným makrem, které v rámci jednoho listu nastavuje rychlý filtr, ale při ZAMKNUTÉM listu? Excel mi píše velice přesně výmluvné následující chybové hlášení, pokud se při zamčeném listu pokusím stisknout tlačítko:
         Run-time Error '1004': Tento příkaz nelze použít v zamknutém listu. <a že je potřeba list nejprve odemknout>
         - jedná se například o VB výraz: ActiveSheet.Range("$A$2:$K$1002").AutoFilter Field:=11, Criteria1:="=-1", Operator:=xlOr, Criteria2:="=0"

    Pokud použiji výraz pro zobrazení všech dat (vypnutí podmínek filtrů):
         - VB: ActiveSheet.ShowAllData
         Chybové hlášení je pak takovéto: Run-time Error '1004': Metoda ShowAllData třídy Worksheet selhala.

    Celé mě to zajímá jen ze zvědavosti. Tabulka a ovládací prvky s filtrováním samozřejme fungují bezvadně i bez uzamčeného listu, ale já bych prostě měl důvod, aby tam některé buňky byly uzamčené i kvůli vzorcům. Při uzamykání nastavuji 2 položky: možnost vybrat a měnit odemčené buňky a možnost používat filtry. Zkoušel jsem ale vybrat všechny volby a také to nefunguje. Je mi ale divná skutečnost, že nastavování filtru ručně funguje i na uzamčeném listu bez problémů, proč by to nemělo jít skriptem?

    Pokud by to někdo nechtěl simulovat, můžu tabulku na přání nějak zaslat. A ještě dodám důvod, proč vůbec používám tlačítka pro filtr: pokud potřebujete neustále filtrovat tabulku podle 2 a více kritérií zároveň a neustále filtr přepínat tam a zpět, tak je to docela pruda, nenapadlo mě nic jiného než to automatizovat makrem a tlačítko na obrazovce je příjemnější než spouštění přes klávesovou zkratku nebo dokonce tlačítko na pásu karet.

    Předem děkuji za pomoc
    úterý 16. února 2010 7:40

Odpovědi

  • Zdravim,
    zkousel jsem si to cvicne jen na zkusebni tabulce. A pokud jde na zamcenem listu filtrovat tak to musel nekdo v prubehu zamykani listu povolit zatrzitkem pro applyautofilter. Jinak si myslim, ze nejjednodussi zpusob by byl na zacatku makra ktere filtruje list odemknout a po vyfiltrovani zamknout. Stejne tak u makra, ktere ma zobrazit vse.
    Me to tady funguje bez problemu a pro zvyseni bezpecnosti se da nastavit heslo na vba project takze nepovolana osoba se nepodiva, jakym heslem byl list zamcen.

    Jiri Neoral

    • Navržen jako odpověď Jiri NeoralMVP úterý 16. února 2010 17:49
    • Označen jako odpověď Leoš Verner čtvrtek 25. února 2010 7:32
    úterý 16. února 2010 17:49