< návrat zpět

MS Excel


Téma: Makra a uzamčené listy rss

Zaslal/a 17.1.2014 10:42

Dobrý den,

rád bych Vás poprosil o radu v makrech. Mám soubor, ve kterém prostřednictvím ActiveX prvku (Checkbox) skrývám a odkrývám řádky. Potřeboval bych ale zároveň zamknout list tak, aby se mi v zamčeném listu po kliknutí na checkbox řádky odkryly. (v nezamčeném listu mi to funguje, ale když ho uzamknu tak mi to píše chybu, že není možné nastavit vlastnost Hidden třídy Range)

Makro mám zapsané takto:

Private Sub CheckBox1_Click()

'Skrýt řádky

If CheckBox1.Value = True Then

CheckBox1.Caption = "Zobrazit"

Rows("3:25").EntireRow.Hidden = True

End

End If

'Zobrazit řádky

If CheckBox1.Value = False Then

CheckBox1.Caption = "Skrýt"

Rows("3:25").EntireRow.Hidden = False

End

End If

End Sub

Díky mnohokrát za odpověď

Zaslat odpověď >

icon #017324
eLCHa
Private Sub CheckBox1_Click()
ActiveSheet.Unprotect
If CheckBox1.Value Then
CheckBox1.Caption = "Zobrazit"
Else
CheckBox1.Caption = "Skrýt"
End If
Rows("3:25").EntireRow.Hidden = CheckBox1.Value
ActiveSheet.Protect
End Sub


Ve VBA nepoužívejte End. Tady jednak máte zbytečně a pokud potřebujete předčasně ukončit proceduru, používejte Exit Sub.citovat
#017325
avatar
Někde na začátku vlož něco takového:

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

Pro makro bude list odemčený, pro uživatele zamčený.citovat
icon #017326
eLCHa
@lubo
díky za tip ;)

Ještě jsem nepoužil. Má to nějaká úskalí?
Funguje to na projekt nebo pro každou proceduru.
Samozřejmě si můžu najít, ale pokud používáte...citovat
#017336
avatar
Mně to funguje úplně bez chyby, takže moc děkuju!! Jediná drobnost, musím zamknout celý sešit a ne list, když zamknu list, tak to není aktivní..

A díky za rady s end, je to moje první makro v životě, takže google a pokus omyl :)citovat
#017364
avatar
@leLCHa

Používám občas (snažímse vystačit bez maker). Stačí zavolat jednou po každém otevření. Otevřením/uložením? se vlastnost resetuje - tj. chování je logické.

Problémů jsem si zatím nevšiml.citovat
#037349
avatar

lubo napsal/a:

Někde na začátku vlož něco takového:

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

Pro makro bude list odemčený, pro uživatele zamčený.


Nebyla by možnost ukázky? Stále mi to hází že není možné nastavit vlastnost Hidden třídy Range :(citovat
#037352
avatar

lubo napsal/a:

@leLCHa

Používám občas (snažímse vystačit bez maker). Stačí zavolat jednou po každém otevření. Otevřením/uložením? se vlastnost resetuje - tj. chování je logické.

Problémů jsem si zatím nevšiml.


Při využití této funkce mi nefungují akce povolené všem uživatelům při uzamčení - např. automatický filtrcitovat
icon #037365
eLCHa
Zkusil jste toto?ActiveSheet.Protect Password:="heslo", AllowFiltering:=True, UserInterFaceOnly:=Truecitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje