Pozdravljeni,
Imam obrazec v katerem so pomešana območja zaščitenih in nezaščitenih celic. Zdaj pa sem se namenil napisati makro, ki bi mi pobrisal vse nezaščitene celice.
Obstaja kakšna bližnica ali moram v makro vpisati vsako območje posebej? V primeru "bližnice" se bojim, da bi pomotoma sprožil makro, ko je list nezaščiten in bi mi pobrisalo ves obrazec .
Kaj mi svetujete?
lp
Brisanje (izbira) vseh nezaščitenih celic
Re: Brisanje (izbira) vseh nezaščitenih celic
Pozdravljeni,
To pa je dokaj preprosto. Po celotnem obrazcu se s 'for each' zanko sprehodite po vseh celicah in v kolikor določena celica ni zaščitena (cell.Locked = false) jo pobrišite (cell.value = "")
To pa je dokaj preprosto. Po celotnem obrazcu se s 'for each' zanko sprehodite po vseh celicah in v kolikor določena celica ni zaščitena (cell.Locked = false) jo pobrišite (cell.value = "")
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Brisanje (izbira) vseh nezaščitenih celic
Žal je moje znanje VBA-ja premajhno da bi znal sam napisat makro. Ste mi pa dali idejo in sem na spletu našel nekaj ter z majhnimi popravki kode mi sedaj deluje.
Če vam ni odveč pa lahko še vi napišete svojo varianto.
Hvala.
Koda: Izberi vse
Sub Gumb1_Klikni()
Dim WorkRange As Range
Dim FoundCells As Range
Dim Cell As Range
Set WorkRange = ActiveSheet.UsedRange
For Each Cell In WorkRange
If Cell.Locked = False Then
If FoundCells Is Nothing Then
Set FoundCells = Cell
Else
Set FoundCells = Union(FoundCells, Cell)
End If
End If
Next Cell
If FoundCells Is Nothing Then
MsgBox "Brisanje ni mogoče vse celice so zaščitene."
Else
FoundCells.Value = ""
End If
End Sub
Hvala.
Re: Brisanje (izbira) vseh nezaščitenih celic
Pozdravljeni,
saj implementacija ideje je pravilna, le da koda, ki ste jo pobrali verjetno služi namenu identificiranja vseh nezaščitenih celic za nadalnjo obravnavo, kar pa v vašem primeru ni potrebno, saj ko najdete nezaščiteno celico jo pač pobrišete in tako je koda precej krajša in malce hitrejša:
saj implementacija ideje je pravilna, le da koda, ki ste jo pobrali verjetno služi namenu identificiranja vseh nezaščitenih celic za nadalnjo obravnavo, kar pa v vašem primeru ni potrebno, saj ko najdete nezaščiteno celico jo pač pobrišete in tako je koda precej krajša in malce hitrejša:
Koda: Izberi vse
Sub Gumb1_Klikni()
Dim WorkRange As Range
Dim Cell As Range
Set WorkRange = ActiveSheet.UsedRange
For Each Cell In WorkRange
If Cell.Locked = False Then Cell.Value = ""
Next
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator