< návrat zpět

MS Excel


Téma: Formátování CheckBox rss

Zaslal/a 10.11.2023 10:49

Pěkný den,
trápím se s formátováním a nastavením zatržítka (CheckBox), poradí mi prosím někdo? Jedná se o prvek ActiveX, který je součástí formuláře určeného pro prosté uživatele.

1. Chtěl bych mít transparentní pozadí ovládacího prvku, tj. aby nepřekrýval podbarvenou buňku, na které stojí.

2.Lze měnit velikost samotného čtverečku zatržítka? Rád bych ho zvětšil, jeho standardní velikost je miniaturní.

3. Pokud mám propojený CheckBox s buňkou a zamknu list, tak aby šlo měnit zaškrtnutí a stav se do buňky propisoval (formát je nastaven, aby hodnota vidět nebyla), musí být ona buňka odemknutá. Jak ale potom zabráním, aby uživatel (třeba nechtěně) obsah buňky nežádoucím způsobem změnil - třeba výmazem hodnoty, zápisem z klávesnice či vložením zkopírované hodnoty? Ano, můžu nastavit Ověření pro buňku, ale byl bych raději, kdyby uživatel vůbec nemohl do buňky vstoupit.

Zaslat odpověď >

#055653
Lugr
Transparentní pozadí
1. na kartě Vývojář klikni na Režim návrhu
2. klikni na Checkbox pravým tlačítkem myši
3. vyber Properties (Vlastnosti)
4. změň BackStyle z 1 - fmBackStyleOpaque na 0 - fmBackStyleTransparent
Příloha: zip55653_checkbox.zip (16kB, staženo 4x)
citovat
#055663
avatar
To Lugr(10.11.2023 20:58):

Díky za reakci a makro. Prakticky ošetřuje problematiku, kterou popisuju v bodě č.3. Pokud bych chtěl list chránit zamčením s heslem, bylo by to heslo uživateli dostupné při zobrazení kódu, ne?

Vyřešil jsem to tak, že CheckBox jsem spároval s odemknutou buňkou, která je ve skrytém řádku někde jinde, kde to nevadí. Do buňky pod CheckBoxem mohu (ale nutné to nakonec není) výslednou hodnotu propsat prostřednictvím vzorce, může tak zůstat zamknutá.

K tomu nastavení Properties - fmBackStyleTransparent. Ano to jsem tak měl nastavené, ale stejně, jakmile se do zatržítka klikne, celý jeho rámeček překryje buňku pod ním. Je transparentní až v okamžiku, kdy se klikne na jiné místo tabulky. Takže to je nejspíš vlastnost, kterou obejít nelze.
Stejně tak asi nelze nastavit velikost zaškrtávacího čtverečku...citovat
#055670
elninoslov
Ak pri otváraní zošitu pridáte do zabezpečenia parameter UserInterfaceOnly, zmena makrom nebude vyžadovať odomknutie, a všetko môže byť zamknuté, no nemôže byť prepojená bunka:
Private Sub Workbook_Open()
Worksheets("List1").Protect Password:="", UserInterfaceOnly:=True
End Sub

V liste potom stačí
Private Sub CheckBox1_Click()
Range("B2").Value = CheckBox1.Value
End Sub


Ak chcete prepojenú bunku, môžete ju nalinkovať do skrytého listu, nemusí byť v tom liste a zavadzať. Ten list ale bude skrytý nastavením vlastnosti
Visible = xlSheetVeryHidden
Teda nebude dostupné jeho odkrytie štandardným spôsobom, ale iba vo VBA. Potom nepotrebujete vyššie uvedené 2 kódy.

A to VBA zabezpečte tiež heslom. Aby sa nedal odokryť list, ani aby nebolo vidieť heslo vo Workbook_Open.
Tools - VBAProject Properties - Protection - Lock project for viewing + heslo

Ale zabezpečenie Excelu neberte ako nedobytné, to je skôr na zabránenie nechcenému dodrbkaniu dát, ako na zabezpečenie pred "hackerom" :)citovat
#055671
Lugr
Makro se dá též zamknout před zobrazením. 1citovat
#055687
avatar
Díky za užitečné podněty, využiju 1citovat

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Hromadné přepsání

elninoslov • 24.5. 10:29

Hromadné přepsání

Nomi • 24.5. 8:32

Index - každý rok začít od 1 Power Query

Alfan • 23.5. 9:17

nepřímý odkaz

elninoslov • 23.5. 0:00

nepřímý odkaz

bordov • 22.5. 18:35

vrácené hodnoty

Anonym • 22.5. 15:46

vrácené hodnoty

Anonym • 22.5. 15:45