Stránka 1 z 1

Excel - Makro na zamykání buněk  Vyřešeno

Napsal: 22 bře 2012 17:23
od s3jr4
Ahoj,
potřeboval bych poradit s jedním makrem.
Mám sešit, ve kterém zapisuji do buněk ve 2 levých sloupcích (ostatní jsou zamčené). Do těch 2 odemčených sloupců doplňuji hodnoty, se kterými se dále pracuje v zamčených sloupcích.
Potřeboval bych dosáhnout toho, aby po vyplnění buňky se tato buňka automaticky zamkla (bez jakékoliv spolupráce uživatele), aby ji nebylo možné přepsat.

Makro pro zamknutí buňky jsem dokupy dal, ale potřeboval bych ho dodělat, aby pracovalo dle popisu výše.

ActiveSheet.Unprotect Password:="********"
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect Password:="********", DrawingObjects:=True, Contents:=True, Scenarios:=True

Pomůže někdo?

Předem děkuji.

Re: Excel - Makro na zamykání buněk

Napsal: 22 bře 2012 18:10
od cmuch
Ahoj,
použij toto. Nakopíruj VBA do listu kde chceš ty buňky zamykat.

Kód: Vybrat vše

Private Sub Worksheet_Change(ByVal Target As Range)

 ActiveSheet.Unprotect Password:="********"
 Target.Locked = True
 Target.FormulaHidden = False
 ActiveSheet.Protect Password:="********", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Re: Excel - Makro na zamykání buněk

Napsal: 22 bře 2012 18:58
od s3jr4
Díky! Funguje.
Bylo by obtížné přidat, aby se buňka zamkla jen za určité podmínky?
Pro sloupec A by to bylo např. lenb > 10, pro B lenb < 10

Re: Excel - Makro na zamykání buněk

Napsal: 22 bře 2012 19:34
od cmuch
Nevím jestli jsem správně tu podmínku pochopil, uprav dle libosti.

Kód: Vybrat vše

Private Sub Worksheet_Change(ByVal Target As Range)

If Union(Columns("A"), Target).Address = Columns("A").Address Then
  If Len(b) > 10 Then GoTo splneno
End If

If Union(Columns("B"), Target).Address = Columns("B").Address Then
   If Len(b) < 10 Then GoTo splneno
End If

GoTo konec ' preskoc uzamykání

splneno:
    ActiveSheet.Unprotect Password:="********"
    Target.Locked = True
    Target.FormulaHidden = False
    ActiveSheet.Protect Password:="********", DrawingObjects:=True, Contents:=True, Scenarios:=True

konec:
End Sub

Re: Excel - Makro na zamykání buněk

Napsal: 22 bře 2012 20:13
od s3jr4
Snažil jsem se to upravit, bohužel vždy fungovalo jen na jedné buňce a pak přestalo.
Nomohl by jsi to upravit tak, aby:
- pro sloupec A platilo:
- pokud zadám do buňky hodnotu kratší než 10 znaků, nestane se nic
- pokud zadám do buňky hodnotu delší než 10 znaků, buňka se zamkne
- pro sloupec B platilo:
- pokud zadám do buňky hodnotu delší než 10 znaků, nestane se nic
- pokud zadám do buňky hodnotu kratší než 10 znaků, buňka se zamkne

Děkuji za pomoc.

Re: Excel - Makro na zamykání buněk

Napsal: 22 bře 2012 20:22
od cmuch
Vlož hned na začátek makra toto

Kód: Vybrat vše

Dim b As Variant

b = Target.Value

a uprav znaménka.

Re: Excel - Makro na zamykání buněk

Napsal: 22 bře 2012 20:26
od s3jr4
To je ono, díky!

Re: Excel - Makro na zamykání buněk

Napsal: 22 bře 2012 20:30
od cmuch
Pokud vše zamkni.