Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA Script funktioniert im Einzelschritt aber nicht normal?!

492 views
Skip to first unread message

Thomas Metschke

unread,
Jul 17, 2004, 4:48:18 PM7/17/04
to
Ich glaub ich beiß gleich in die Tischplatte ...
ich habe ein kleine sub in vba geschrieben
das mach nichts anderes als bestimmte Zeilen
auf "gesperrt" zu setzen andere nicht ...

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

BorisX

unread,
Jul 17, 2004, 5:07:25 PM7/17/04
to
Hi 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

Eberhard Funke

unread,
Jul 18, 2004, 10:09:56 AM7/18/04
to
Hallo Thomas,


"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

0 new messages