Lastnost: EnableSelection

Pomoč pri izdelavi makrov
Odgovori
dragopre
Prispevkov: 105
Pridružen: To Dec 11, 2012 11:46 pm

Lastnost: EnableSelection

Odgovor Napisal/-a dragopre »

Pozdravljeni

Imam težavo z nastavitvijo EnableSelection=xlUnlockedCells
V delovnem zvezku imam tri liste zaščitene in nastavljeno lastnost: EnableSelection=xlUnlockedCells.
Ko zvezek zaprem in ga ponovno odprem pa se nastavitve spremenijo na: EnableSelection=xlNoRestrictions.
Pri zapiranju vedno potrdim shranjevanje sprememb!

V zvezku imam tudi VBA kodo v kateri v nekaterih primerih listu ukinem zaščito in jo po spremembi zaščitenih celic ponovno vrnem.
Nastavitve EnableSelection v VBA kodi ne spreminjam.
Za test sem v dogodka Workbook_BeforeClose in Workbook_Open dodal naslednjo kodo:

Koda: Izberi vse

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Prot = Worksheets("Promet").ProtectContents               ' True
  EnSel1 = Worksheets("Promet").EnableSelection             ' 1 (xlUnlockedCells)
  EnSel2 = Worksheets("Namensko").EnableSelection           ' 1 (xlUnlockedCells)
  EnSel3 = Worksheets("Nastavitve").EnableSelection         ' 1 (xlUnlockedCells)
  EnSel4 = Worksheets("Poročilo").EnableSelection           ' 0 (xlNoRestrictions)
  EnSel5 = Worksheets("Projekti").EnableSelection           ' 0 (xlNoRestrictions)
  EnSel6 = Worksheets("Vir_XX").EnableSelection             ' 0 (xlNoRestrictions)
  EnSel7 = Worksheets("START").EnableSelection              ' 1 (xlUnlockedCells)
  Stop                                                      ' TEST
End Sub

Private Sub Workbook_Open()
  Prot = Worksheets("Promet").ProtectContents               ' True
  EnSel1 = Worksheets("Promet").EnableSelection             ' 0 (xlNoRestrictions)
  EnSel2 = Worksheets("Namensko").EnableSelection           ' 0 (xlNoRestrictions)
  EnSel3 = Worksheets("Nastavitve").EnableSelection         ' 0 (xlNoRestrictions)
  EnSel4 = Worksheets("Poročilo").EnableSelection           ' 0 (xlNoRestrictions)
  EnSel5 = Worksheets("Projekti").EnableSelection           ' 0 (xlNoRestrictions)
  EnSel6 = Worksheets("Vir_XX").EnableSelection             ' 0 (xlNoRestrictions)
  EnSel7 = Worksheets("START").EnableSelection              ' 1 (xlUnlockedCells)
  Stop                                                      ' TEST
  Worksheets("Promet").EnableSelection = xlUnlockedCells              ' Za vsak slučaj
  Worksheets("Namensko").EnableSelection = xlUnlockedCells            ' Za vsak slučaj
  Worksheets("Nastavitve").EnableSelection = xlUnlockedCells          ' Za vsak slučaj
End Sub
V komentarju sem zapisal rezultat, ki sem ga preveril pri STOP ukazu.
Če zvezek samo odprem in zaprem ( in ponovim vajo) je rezultat vedno isti:
- Tik pred zapiranjem je nastavitev EnableSelection = xlUnlockedCells
- Ko pa zvezek takoj nato spet odprem pa je nastavitev zopet: EnableSelection = xlNoRestrictions.
Kot, da se nastavitev pri shranjevanju ne bi zapisala ali pa pri ponovnem odpiranju preglasila z neko nastavitvijo, ki jo ne poznam.
Zanimivo, pri listu "START" (ki ni zaščiten) se to ne dogaja.

Saj pri Open lahko postavim nastavitev, vendar dogajanja ne razumem.
Mi lahko pomagate / razložite?

Lep pozdrav, Drago
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Lastnost: EnableSelection

Odgovor Napisal/-a admin »

Pozdravljeni,

Ne vem, kaj počnete v VBA kodi, vendar Excel sam zase teh elementov ne spreminja.

To najlažje preverite tako, da
  1. Odprete nov delovni zvezek
  2. V njem odprete tri liste in na prvem nastavite xlNoRestrictions, na drugem xlUnlockedCells in na tretjem xlNoSelection
  3. Na vsakem izmed listov nekaj celic odščitite
  4. Vse liste zaščitite in zvezek shranite
  5. Ko ga ponovno odprete bo vse tako kot je bilo nastavljeno!
Sem vam pripravil tudi primer, kjer so listi zaščiteni z geslom 'test', odščitene celice pa so rumene. Zvezek lahko odpirate, zapirate, popravljate... pa bo vse tako kot je nastavljano.

Napaka je nekje v vaši VBA kodi
lp,
Matjaž Prtenjak
Administrator
Odgovori