jetzt zu dem Problem ...
das sub funktioniert wenn ich es mit f8 im
einzelschrittverwahren durchklicke
sobald ich es aber mit play "abspiele" macht das Ganze
garnichts
benutzte Excel2003 und bin am Ende ... :) ... was mache
ich falsch?
hier das sub:
Sub setze_schutz()
'Application.ScreenUpdating = False
Dim n As Long
n = 5
Worksheets(1).Activate
Range("a1", "iv4").Locked = True
Do While n < 500
Cells(n, 1).Select
If Selection.Interior.ColorIndex = xlNone Then
ActiveCell.Offset(0, 255).Activate
Range(Selection, Cells(ActiveCell.Row, 1)).Locked =
False
Else
ActiveCell.Offset(0, 255).Activate
Range(Selection, Cells(ActiveCell.Row, 1)).Locked =
True
End If
n = n + 1
Loop
'Application.ScreenUpdating = True
Range("A1").Select
End Sub
===
Dankeschön
Thomas
>jetzt zu dem Problem ...
>
>das sub funktioniert wenn ich es mit f8 im
>einzelschrittverwahren durchklicke
>sobald ich es aber mit play "abspiele" macht das Ganze
>garnichts
>
>benutzte Excel2003 und bin am Ende ... :) ... was mache
>ich falsch?
>
>hier das sub:
[Code gesnippt]
Ich habe den Code jetzt nicht getestet oder nachgebaut -
aber kann es sein, dass du den Code in einem
TABELLENmoldul AUSSERHALB Worksheet(1) platziert hast?
Dann bezieht sich nämlich z.B.
Range("a1", "iv4").Locked = True
immer auf DAS Blatt, in dessen Modul der Code steht -
unabhängig davon, ob du vorher Sheet 1 aktivierst oder
nicht.
Also, füg ihn mal in ein ALLGEMEINES Modul ein - wenn´s
dann geht, lag´s daran.
Unabhängig davon sei nur angemerkt, dass die ganze
Selektiererei nicht sein muss.
--
Grüße Boris
"Thomas Metschke" <anon...@discussions.microsoft.com> schrieb:
[.....]
Du kannst zwar mit F8 durch den Code wandern, aber in dem von Dir
gewünschten Sinne (Zeilen schützen) passiert auch da nichits.
Füge mal von der End-Sub-Zeile ein:
ActiveSheet.Protect Contents:=True
(so wie Du es auch im Tabellenblatt beim Zellenschutz machen mußt)
Jetzt sind bis Zle 500 alle farbigen Zeilen geschützt und darüber
hinaus alle Zeilen >500.
Etwas gekürzt geht auch
Option Explicit
Sub setze_schutz_kurz()
'Application.ScreenUpdating = False
Dim n As Long
n = 5
Worksheets(1).Activate
Range("a1", "iv4").Locked = True
Do While n < 500
If Cells(n, 1).Interior.ColorIndex = xlNone Then
Rows(n).Locked = False
Else
Rows(n).Locked = True
End If
n = n + 1
Loop
'Application.ScreenUpdating = True
Range("A1").Select
ActiveSheet.Protect Contents:=True
End Sub
Getestet mit XL 2000, sollte aber bei Dir nicht anders sein (?)
--
Gruß Eberhard
XL 2000