< návrat zpět

MS Excel


Téma: Uzamknutí sloučené buňky rss

Zaslal/a 29.3.2012 6:19

Dobrý den,

potřeboval bych, aby se mi buňka po zapsání uzamknula, to bych ještě zvládnul. Ale nevím jak na to, když mám vytvořenou buňku sloučením buněk.
Potom mi to hází chybu že

"nejde nastavit vlastnost Locked třídy range".

Děkuji za návrhy

stop Uzamčeno - nelze přidávat nové příspěvky.

Strana:  1 2   další »
icon #007820
Poki
cau,
problem je ten, ze Slouceni bunek je nocni mura pro vsechny, co pracuji s Excelem vice nez pri "kresleni tabulek".

Je potreba overit, jestli je bunka soucasti sloucenych bunek a pak zamknout celou oblast:

Sub Lock_MergedCell()
Dim CELL As Range, MergedRange As Range
Set CELL = Range("b3")

If CELL.MergeCells = False Then
CELL.Locked = True
Else
Set MergedRange = CELL.MergeArea
MergedRange.Locked = True
End If
End Sub
citovat
#007821
avatar
tento podobný kod s testováním uz jsem na netu nasel, ale nevím jak ho využít v mém případě.

V tomto případě je pro mne testovaná bunka "b3"?, jestli to správně chápu.citovat
icon #007822
Poki
ano, jde o bunku B3 - to jsem si jen tak zvolil pro svuj priklad.
Promenna CELL muze byt samozrejme definovana jinak (a klidne dynamicky, aby to mohlo byt pouzito v cyklu)citovat
#007823
avatar
Nějak mi to nefuguje, když to zkouším. Mohl by jsi uvést příklad s tím dynamyckým využitím.
Jsem totiž tak trochu amatér 1citovat
icon #007824
Poki
treba takto:
Sub Lock_MergedCell()
Dim i As Long, Sloupec As Long
Dim CELL As Range, MergedRange As Range

Sloupec = 2 'v jakem sloupci se bunky prochazeji: Sloupec = 2 -> sloupec B

For i = 1 To Cells(65000, Sloupec).End(xlUp).Row
Set CELL = Cells(i, Sloupec)

If CELL.MergeCells = False Then
CELL.Locked = True
Else
Set MergedRange = CELL.MergeArea
MergedRange.Locked = True
End If
Next i
End Sub
citovat
#007825
avatar
Rozumím dobře celému kodu, že prochází jednotlivé bunky ve sloupci 2 a kdyz není bunka složená tak ji uzamkne a když je složená tak nastaví ji jako oblast a tu uzamkne?

Já bych potřeboval v tom příkladu někde videt...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

když bunku změním, tím že do ni neco napíšu, tak aby se mi uzamkla.citovat
icon #007826
Poki
aha, uz chapu.
Jestli se ma bunka uzamcit po tom, co ji vyplnis, tak se musi pouzit procedura _Change (Selection_Change se pustit vzdy, kdyz zmenis vyber v listu...)

Zkus toto:
Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Target) = 0 Then Exit Sub

If Target.MergeCells = False Then
Target.Locked = True
Else
Set MergedRange = Target.MergeArea
MergedRange.Locked = True
End If
End Sub
citovat
#007827
avatar
to je asi ono ,ale nejak mi to zase nefunguje.

v excelu vytvorim oblast bunek které se nechají změnit a ostatní uzamknu. a když chci zapsat do oblasti do složených buněk tak mi to zase hodí chybu

"nejde nastavit vlastnost Locked třídy range".citovat
icon #007828
Poki
priloz soubor nebo ho aspon posli mailem, takhle to je vazne dost tezky...citovat
#007829
avatar
Posilam soubor
Příloha: rar7829_uzamknuti_test.rar (12kB, staženo 25x)
citovat

Strana:  1 2   další »

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