< návrat zpět
MS Excel
Téma: Podmíněné formátování vs. VBA
Zaslal/a joke01 4.2.2016 9:40
Ahoj,
poprosil bych o radu.
Mám formulář vytvořený někým jiným a po mne se chce napsat automatické odemykání/zamykání buněk, které by mělo být vázané na barvu buňky.
Ale: V případech kdy je buňka podbarvena podmíněným formátováním, makro nerozezná její vlastnost(nebo spíš je pro něj stále nepodbarvená) a tím pádem ji nechá zamčenou.
Za každou radu, která mi pomůže předem děkuju!
Kód:
Sub Zamykani()
Dim bunka As Range
Dim oblast As Range
Set oblast = Range("A1:B2")
ActiveSheet.Unprotect Password:="000"
oblast.Select
Selection.Locked = True
For Each bunka In oblast
If bunka.Interior.Color = RGB(51, 204, 51) Then
bunka.Locked = False
End If
Next bunka
ActiveSheet.Protect Password:="000"
End Sub
Příloha: 29843_k-testovani.zip (7kB, staženo 26x)
Hav-Ran(7.2.2016 5:53)#029945 elninoslov napsal/a:
Lenže zmena inej bunky vo funkcii nefunguje. Funkcia môže meniť bunku iba v jedinom prípade, ak je volaná z procedúry.
Vo vzorcoch to má jednu možnosť - naviazať to cez ZVOLIT/CHOOSE, kde môžem meniť v E2007 až 254 rôznych funkcii (možno som v linku mimo misu
)
citovat
lubo(7.2.2016 9:50)#029948 Zkus toto
Sub Zamykani()
Dim bunka As Range
Dim oblast As Range
Set oblast = Range("A1:B2")
ActiveSheet.Unprotect Password:="000"
oblast.Locked = True
For Each bunka In oblast
If bunka.DisplayFormat.Interior.Color = RGB(51, 204, 51) Then bunka.Locked = False
Next bunka
ActiveSheet.Protect Password:="000"
End Sub
Ke kódu Pearsona - tohle bylo psáno pro 2003 a asi starší. Od verze 2007 to funguje jen náhodou, i když pominu problémy s lokální syntaxí vzorců.
citovat
joke01(9.2.2016 10:32)#029985 Moc Vám všem děkuji, nakonec použiju displayformat ten funguje i u formuláře.
Super ještě jednou díky.
citovat