< návrat zpět

MS Excel


Téma: Blokovanie buniek rss

Zaslal/a 3.10.2013 16:34

Ahojte, vedel by mi niekto prosim poradit, ako naprogramovat zablokovanie buniek v stlpci v tabulke po tom, ako je zadana hodnota do jednej bunky v stlpci? Moze sa to aj rozne menit, len akonalhe je zadana hodnota do niektorej z buniek stlpca, vsetky ostatne bunky v stlpci musia byt vyprazdnene. Dakujem

Zaslat odpověď >

#015515
avatar
Bez makra se to dělá na kartě "Revize" s pomocí: "Zamknout list", "Odemknout list" a "Povolit uživatelům úpravy oblastí", nebo přímím nastavením buněk "Formát buněk / Zámek" a tady označit či neoznačit "Zamknout".
Když to chceš s makrem, tak využij stejného principu...
P.

Např.:
Po uzamčení listu bude možné upravovat buňku A1:
Range("A1").Locked = FalseUzamčení listu:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=Truecitovat
icon #015520
avatar
cez udalosť Worksheet_Change, aby sa to necyklilo, tak budeš musieť asi ešte zamedziť spúšťaniu udalostí cez EnableEvents = Falsecitovat
#015521
avatar
hm a nejak tak v kope by ste mi nepovedali prosim ten kod? Lebo programovat v tom vobec neviem a bez makra to zrejme takto nepojde...Ak tam potrebujem tu podmienku, ze uzamknut stlpec vtedy, akonahle je vyplnene jedno z jeho policok. Nieco ako option button, len to potrebujem vyznacit v bunke istym vlastnym znakom...citovat
icon #015522
avatar
hm, a že by si sem dal vzor? No, ale prosíš pekne, tak tu máš nástrel. Najprv musíš odomknúť oblasť buniek, v ktorej to chceš aplikovať, potom zamknúť list (stačí zamknúť, bez hesla):

Do kódového okna listu, v ktorom to chceš používať, vlož nasledujúci kód (a uprav si v ňom oblasť, pre ktorú to chceš aplikovať):Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyRange As Range, Isect As Range
Set MyRange = [A1:M100] 'tu si urci oblast, v ktorej chces to zamykanie uplatnit
Set Isect = Intersect(MyRange, Target)
If Not Isect Is Nothing Then
ActiveSheet.Unprotect
If Target.Value <> "" Then
Isect.EntireColumn.Locked = True
End If
ActiveSheet.Protect
End If
Set MyRange = Nothing
Set Isect = Nothing
End Sub
citovat
#015547
avatar
dakujem velmi pekne..
skusila som ale vypisuje mi tam chybu"Unable to Set the Locked Property of the Range Class", ked skusam nieco vpisat do slpca v ktorom uz je vpisana hodnotacitovat
icon #015548
avatar
Tak to máš smolu, písala si: "ako naprogramovat zablokovanie buniek v stlpci v tabulke po tom, ako je zadana hodnota do jednej bunky v stlpci"

Naučte sa sem vkladať prílohy, v ktorých to chcete poriešiť a jasne definovať zadanie, "ked skusam nieco vpisat do slpca v ktorom uz je vpisana hodnota" odporuje tomu, čo si chcela na začiatku...

Chybová hláška je fajn, ale ja si nebudem vytvárať súbor, aby som ju nasimuloval a zistil jej príčinu, to prepáč...citovat

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