Warnung: "Dieser Befehl kann nicht ausgeführt werden, da das Shape oder der Layer geschützt sind"

16/12/2008 - 14:34 von eas | Report spam
Hallo!
Ich hab eine Prozedur geschrieben, in der ein Layer entsperrt wird, dann
werden Shapes veràndert, anschliessend wird der Layer wieder gesperrt.
Im Einzelschritt-Debug-Modus (F8) funktioniert alles. Wenn ich aber auf
"ausführen" (F5) gehe, dann werden die Shapes nicht veràndert und ich
bekomme nur eine Warnung

"Dieser Befehl kann nicht ausgeführt werden, da das Shape oder der Layer
geschützt sind"

Was ist da anders??? Das Layer entsperren funktioniert, das hab ich mir
angeschaut: hier der Code:

Public Sub LayerSperren(layername As String, val As Boolean)
'aller Blaetter
Set vsoPages = Application.ActiveDocument.Pages
For Each vsoPage In vsoPages
Set vsoLayersInPage = vsoPage.Layers
Set vsoCurrentLayer = vsoLayersInPage.Item(layername)
Set vsoCell = vsoCurrentLayer.CellsC(visLayerLock)
vsoCell.ResultIU = val
Next vsoPage
End Sub
 

Lesen sie die antworten

#1 Wolfgang Welscher
17/12/2008 - 09:48 | Warnen spam
Hallo,

der Code funktioniert so. Wahrscheinlich ist ein Layer mit einer Formel
"Guard (1) "geschützt.
Diese Formel kann man mit "ForumulaForce" überschreiben.
z.B. vsoCell.FormulaForce=true

Aber Vorsicht die dort eventuell implementierte Funktion wird überschrieben!

Gruß
Wolfgang

Wolfgang Welscher
MCTS Microsoft Office Visio, Application Development
www.x-visual.net


"eas" schrieb im Newsbeitrag
news:
Hallo!
Ich hab eine Prozedur geschrieben, in der ein Layer entsperrt wird, dann
werden Shapes veràndert, anschliessend wird der Layer wieder gesperrt.
Im Einzelschritt-Debug-Modus (F8) funktioniert alles. Wenn ich aber auf
"ausführen" (F5) gehe, dann werden die Shapes nicht veràndert und ich
bekomme nur eine Warnung

"Dieser Befehl kann nicht ausgeführt werden, da das Shape oder der Layer
geschützt sind"

Was ist da anders??? Das Layer entsperren funktioniert, das hab ich mir
angeschaut: hier der Code:

Public Sub LayerSperren(layername As String, val As Boolean)
'aller Blaetter
Set vsoPages = Application.ActiveDocument.Pages
For Each vsoPage In vsoPages
Set vsoLayersInPage = vsoPage.Layers
Set vsoCurrentLayer = vsoLayersInPage.Item(layername)
Set vsoCell = vsoCurrentLayer.CellsC(visLayerLock)
vsoCell.ResultIU = val
Next vsoPage
End Sub





Ähnliche fragen