Ahoj potřeboval bych poradit. mám objednávky na jednotlivých listech a v jednom sloupci je automatický filtr. Potřeboval bych makro které po spuštění odemkne všechny listy s heslem , pak fitr nastaví na VŠe a znovu listy zamkne pod heslem.
Jsem úplný začátečník ohledně makra.
Díky
Excel - odemknutí všech listů pomocí makra Vyřešeno
Re: Excel - odemknutí všech listů pomocí makra
Zkuste tento kod, nijak zvlast jsem to netestoval:
Kód: Vybrat vše
Sub VSEfiltr()
Dim PASSWORD As String
PASSWORD = "Heslo"
For Each List In Worksheets
List.Unprotect PASSWORD
If List.FilterMode Then
List.ShowAllData
End If
List.Protect PASSWORD
Next List
End Sub
Re: Excel - odemknutí všech listů pomocí makra
Děkuji za makro, funguje dobře. Jen mám problém stím že když automaticky uzamkne list , zamkne tím i filtr ve sloupci. Mohu ještě poprosit o radu? A taky jsem se zapoměl zeptat jestli funguje makro ve sdíleném sešitě-?
Re: Excel - odemknutí všech listů pomocí makra
aha, zkuste k tomu radku přidat ještě A
Kód: Vybrat vše
List.Protect PASSWORD
Kód: Vybrat vše
llowFiltering:=True
Kód: Vybrat vše
Sub VSEfiltr()
Dim PASSWORD As String
PASSWORD = "Heslo"
For Each List In Worksheets
List.Unprotect PASSWORD
If List.FilterMode Then
List.ShowAllData
End If
List.Protect PASSWORD, AllowFiltering:=True
Next List
End Sub
Re: Excel - odemknutí všech listů pomocí makra
Použij před svým kódem
Makro poběží, ochrana před uživatelem zůstává. Nastavení platí do zavření sešitu.
Kód: Vybrat vše
For Each List In ActiveWorkbook.Worksheets
List.Protect Password:="Platné heslo", UserInterfaceOnly:=True
Next
Makro poběží, ochrana před uživatelem zůstává. Nastavení platí do zavření sešitu.
Re: Excel - odemknutí všech listů pomocí makra
Tak jsem to zapsal takto
Sub VSEfiltr()
For Each List In ActiveWorkbook.Worksheets
List.Protect PASSWORD:="heslo", UserInterfaceOnly:=True
Next
Dim PASSWORD As String
PASSWORD = "heslo"
For Each List In Worksheets
List.Unprotect PASSWORD
If List.FilterMode Then
List.ShowAllData
End If
List.Protect PASSWORD, AllowFiltering:=True
Next List
End Sub
Makro funguje , ale jak dám sdílení tak hned hlásí chybu :Run-time error '1004' Application-defined or object - defined error
Sub VSEfiltr()
For Each List In ActiveWorkbook.Worksheets
List.Protect PASSWORD:="heslo", UserInterfaceOnly:=True
Next
Dim PASSWORD As String
PASSWORD = "heslo"
For Each List In Worksheets
List.Unprotect PASSWORD
If List.FilterMode Then
List.ShowAllData
End If
List.Protect PASSWORD, AllowFiltering:=True
Next List
End Sub
Makro funguje , ale jak dám sdílení tak hned hlásí chybu :Run-time error '1004' Application-defined or object - defined error
Re: Excel - odemknutí všech listů pomocí makra
No, tak postup vaseho kodu je nyni nasledujici:
1) projde vsechny listy a zamkne je pod heslem (s moznosti filtrovat)
2)projde vsechny listy a pokazde list
Rekl bych, ze krok 1) je zde uplne zbytecne (a navic neresi zobrazeni dat)
Nicmene tyhle problemy vyblednou s tim, ze potrebujete sdileny sesit (coz je pro me osobne moznost Excelu, ktera je sice hezka, ale temer nepouzitelna, protoze sdilene sesity velmi casto "znici sami sebe" - stanou se necitelnymi)
Pokud bych mohl radit a vy opravdu potrebujete databazi s moznosti pristupu pro vice uzivatelu - vyuzijte nejakou databazi - ne Excel.
1) projde vsechny listy a zamkne je pod heslem (s moznosti filtrovat)
2)projde vsechny listy a pokazde list
- a) odemkne
- b) zobrazi vsechny hodnoty
- c) uzamkne s moznosti filtrovat
Rekl bych, ze krok 1) je zde uplne zbytecne (a navic neresi zobrazeni dat)
Nicmene tyhle problemy vyblednou s tim, ze potrebujete sdileny sesit (coz je pro me osobne moznost Excelu, ktera je sice hezka, ale temer nepouzitelna, protoze sdilene sesity velmi casto "znici sami sebe" - stanou se necitelnymi)
Pokud bych mohl radit a vy opravdu potrebujete databazi s moznosti pristupu pro vice uzivatelu - vyuzijte nejakou databazi - ne Excel.
Re: Excel - odemknutí všech listů pomocí makra
Pomotal jsi to. Mrkni příležitostně do nápovědy, co dělá a jak se používá volba UserInterfaceOnly.
Kód: Vybrat vše
Sub VSEfiltr()
Dim PASSWORD As String
Dim bSdileno as Boolean
PASSWORD = "heslo"
With ActiveWorkbook
bSdileno = .MultiUserEditing ' Zapamatovat stav pro případnou obnovu
If .MultiUserEditing Then ' Pokud je sešit sdílen, tak něco
MsgBox "Sesit je sdílen. Nic nedělám"
Exit Sub ' Nedělat nic, možná s hlášením.
' Asi nejlepší volba, korektní práce se sdílenými soubory je docela opruz,
' zejména s předvedenými znalostmi.
' .ExclusiveAccess ' nebo ukončit sdílení pokud chceš a můžeš
End If
For Each List In ActiveWorkbook.Worksheets
With List
.Protect Password:=PASSWORD, UserInterfaceOnly:=True
If .FilterMode Then List.ShowAllData
End With
Next
If bSdileno then ' To uložení je jen příklad, pořeš jak chceš
ActiveWorkbook.SaveAs ..... AccessMode:=xlShared
End If
End Sub
Re: Excel - odemknutí všech listů pomocí makra
Díky vám za pomoc. Bohužel sdílení musí být jelikož pracuje 10 lidí najednou. Access mě také napadl , ale zatím jsme nezkoušel. Bohužel asi budu muset někde ustoupit , jelikož jak vidím tak pracovat ve sdíleném se zamykáním asi nejde. I tak díky za váš čas
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 22
- 5806
-
od echo-cz
Zobrazit poslední příspěvek
23 říj 2024 00:12
-
-
EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw) - 2
- 4716
-
od Riviera kid
Zobrazit poslední příspěvek
02 zář 2024 16:21
-
-
-
Sledování pomocí hodinek
od palecek » 29 srp 2024 09:47 » v Mobily, tablety a jiná přenosná zařízení - 3
- 3812
-
od GamerXXX
Zobrazit poslední příspěvek
02 zář 2024 12:25
-
-
- 2
- 12144
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 4467
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti