Stránka 1 z 1

Uzamčená buňka - zákaz změny formátu při kopírování

Napsal: 18 lis 2013 14:53
od Lůjík
Ahoj potřebovala bych poradit. Mám zamčený list a v něm několik buněk, do kterých je povoleno pouze psát, ale nesmí se v nich měnit formát. To vše funguje do té doby, než někdo text kopíruje z jiné tabulku s jiným formátování (ohraničením aj.), pak se formát zkopíruje ze zdroje a ani nejde změnit, protože je buňka uzamčena proti formátování. Potřebovala bych nějak nastavit, aby se formát nezměnil, případně nějaké automatické makro, které nastaví výchozí písmo,ohraničení i výšku řádku (která se mi po vložení taky změní).

Nebo mě napadlo, zda nejde nastavit parametr, aby do této buňky byly hodnoty vkládány pouze jako vložit jinak->hodnoty.

Existuje nějaké řešení, moc děkuju za pomoc :sigh:

Re: Uzamčená buňka - zákaz změny formátu při kopírování

Napsal: 18 lis 2013 17:52
od guest
Je to stejné, jako když se ošetřuje přepis Data / Ověření v buňce technikou nakopírování - sledování události Worksheet_Change listu a v případě, že se změnila sledovaná buňka a její vlastnost, vrátit konkrétní vlastnost kódem zpět nebo rovnou použít Application.Undo.

Re: Uzamčená buňka - zákaz změny formátu při kopírování

Napsal: 19 lis 2013 16:02
od Lůjík
To zní dobře, jen to asi neumím napsat. Nenapsal bys mi kod, který hlídá buňky A1 až B2 a když dojde ke změně, tak vrátí původní formátování. Byla bych Ti mooc vděčná

Re: Uzamčená buňka - zákaz změny formátu při kopírování  Vyřešeno

Napsal: 19 lis 2013 18:15
od cmuch
Mělo by to splňovat toto.
Vlož do modulu příslušného listu

Kód: Vybrat vše

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngHlidani As Range
Dim VlozenaHodnota As Variant

'nastaveni hlidani oblasti
Set rngHlidani = Range("A1:B2")

VlozenaHodnota = Target.Value

 ' pokud je vybrana bunka z definovane oblasti tak proved
 If Union(rngHlidani, Target).Address = rngHlidani.Address Then

    With Application
          .EnableEvents = False
          .Undo
        Range(Target.Address) = VlozenaHodnota
          .EnableEvents = True
    End With
 End If
End Sub