Anzeige
Archiv - Navigation
164to168
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
164to168
164to168
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Warum klappt das nicht?

Warum klappt das nicht?
09.10.2002 16:08:35
Jörg
Ich versuch immer noch, die aktive Zelle einzufärben. Aber durch denn Blattschutz klappt das einfach nicht.

Public oldTarget As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
On Error Resume Next
ActiveSheet.Unprotect "test"
oldTarget.Interior.ColorIndex = xlNone
Target.Interior.ColorIndex = 36
Set oldTarget = Target
ActiveSheet.Protect "test"
End Sub

Wenn ich denn Blattschutz wieder aufhebe, aktiviert er sich automatisch wieder. Ohne Blattschutz funktioniert das, wenn ich das kennwort in der Formel herrausnehme. Weiß jemand von Euch eine Lösung?
Ich wäre seeeeehr dankbar dafür.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Warum klappt das nicht?
09.10.2002 16:26:00
Marcello
Hi Jörg,
Ich verwende folgende Sub´s für den schutz. Evtl. einfach mit dem Passwort ergänzen. Ich arbeite aber mit Excel 97 nicht mit der Ver.10.


Public Sub aus()
Dim wsn As String
Range("A1").Select
wsn = ActiveCell.Worksheet.Name
If Worksheets(wsn).ProtectContents = False Then
Else
Worksheets(wsn).Unprotect
End If
End Sub


Public Sub ein()
Dim wsn As String
Range("A1").Select
wsn = ActiveCell.Worksheet.Name
If Worksheets(wsn).ProtectContents = False Then
Worksheets(wsn).Protect
Else
End If
End Sub

Re: Warum klappt das nicht?
09.10.2002 16:35:21
Jörg
klappt das denn auch unter officeXP?
Anzeige
Re: Warum klappt das nicht?
09.10.2002 16:59:29
Martin Beck
Hallo Jörg,

sehe gerade, daß heute schon eine rege Diskussion zu meinem kleinen Makro stattfand.

Zunächst mal zur bisherigen Funktionsweise des Makros. Du hattest seinerzeit geschrieben, daß Blatt sei geschützt. Da trotzdem die Hintergrundfarbe der aktiven Zelle verändert werden soll, muß der Blattschutz (mit oder ohne Paßwort) augehoben werden, zumindest temporär. Dies erledigt die Zeile

ActiveSheet.Unprotect "test"

oder ohne Paßwort

ActiveSheet.Unprotect

Ich bin nun davon ausgegangen, daß der Blattschutz nach Ablauf des Makros wieder gesetzt werden soll und habe daher die Zeile

ActiveSheet.Protect "test"

am Ende des Codes eingefügt.

Die jetztige Diskussion verstehe ich so, daß es vorkommt, daß der Blattschutz von Dir manuell aufgehoben wird. Wenn Du jetzt die Zellauswahl änderst, wird die Ereignisprozedur ausgelöst. Der Unprotect-Befehl ist wirkungslos, da das Blatt ja nicht geschützt ist, aber der Protect-Befehl wirkt immer. M.a.W. Nach einer Veränderung der Zellauswahl hast Du immer ein geschütztes Blatt!

Ich gehe jetzt mal davon aus, daß das Blatt nach dem Abarbeiten der Ereignisprozedur

1) geschützt sein soll, wenn es vorher geschützt war.
2) nicht geschützt sein soll, wenn es vorher nicht geschützt war.

Verwende hierzu folgenden Code:

Wichtig: Es wird eine beliebige Zelle (hier A1) benötigt, die bei aktivem Blattschutz nicht geändert werden kann, damit im Code festgestellt werden kann, ob das Blatt geschützt ist oder nicht. Statt A1 kannst Du irgendeine Zelle nehmen, die nicht stört, Du mußt den Code dann entsprechend anpassen.

Noch eine Anmerkung zur Public-Variable oldTarget. Es soll ja immer nur die aktive Zelle farbig markiert sein. Das bedeutet, die Markierung in der zuletzt markierten Zelle muß rückgängig gemacht werden. Die Zelle "merkt" sich das Programm in oldTarget. Beim ersten Aufruf des Codes ist oldTarget logischerweise noch nicht belegt. Dann läuft die Zeile

oldTarget.Interior.ColorIndex = xlNone

auf einen Laufzeitfehler 91. Und um dies zu unterdrücken, ist eben

On Error Resume Next

erforderlich.


Alle Klarheiten beseitigt? ;-)

Gruß
Martin Beck

Anzeige
Re: Warum klappt das nicht?
09.10.2002 17:03:12
Jörg
Frage: Was soll deine Formel bewirken?
Ich seh keinen Bezug auf eine Farbe
Re: Warum klappt das nicht?
09.10.2002 17:10:10
Jörg
KLar Martin, aber es ist so!!!
Hört sich auch so an, als ob ich genau das wollte: das Blatt bleibt immer geschützt, sofern keine Änderungen vorgenommen werden. Ich brauch halt nur ein paar Zellen, in die ich was reinschreiben möchte, alles andere ist dann durch den Schutz nicht erreichbar.
Und wenn ich den Schutz aufhebe, hatte ich bisher das Problem, das der schutz sich automatisch wieder installierte. ich muss aber das Blatt manuell öffnen können, das werd ich jetzt mal testen. Kann ich diese Formel auch für die gesamte Arbeitsmappe benützen (10Blätter), oder soll ich jedes Blatt einzeln eingeben?
Und noch eines : für das wort "test" setzte ich mein Codewort ein?
kann ein unbvefugter das Codewort dannn noch herrausbekommen?
z.b. über das Register?

Aber hab erst mal vielen Dank für deine tolle Hilfe!!!!!!!!!

Anzeige
Re: Warum klappt das nicht?
09.10.2002 19:28:18
Jörg
Danke Martin, jetzt funtioniert es einwandfrei.

Daaaaaaaaaankeeeeeeeeeeee Dir ganz herzlich!

Gruß Jörg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige