Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
256to260
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
256to260
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Blatt schützen

Blatt schützen
14.05.2003 13:23:05
Carsten
Hallo zusammen,

ich habe ein Problem mit einem Makro.

Das Makro trägt bei einem Doppelklick auf einen Artikel die Laufnummer dieses Artikels in ein zweites Tabellenblatt ein und färbt den ausgewählten Artikel. Bei einem zweiten Doppelklick wird diese Auswahl wieder rückgängig gemacht.
Das funktioniert alles ganz prima. Ich schaffe es allerdings nicht, das aktive Blatt, d.h. das Blatt in dem der Doppelklick ausgewählt wird nach der Aktion mit einem Blattschutz zu versehen.
Aufheben geht aber das Schützen klappt nicht. An welcher Stelle muß ich das "activesheet.protect" einfügen? Oder brauche ich dafür einen ganz anderen Aufruf???

Hier der Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim artikel As String

Sheets("Kalkulation").Unprotect
Sheets("Kalkulation").Cells.EntireRow.Hidden = False
x = Target.Column
y = Target.Row
Cancel = True
Select Case Cells(y, x).Interior.ColorIndex
Case Is = xlNone
Cells(y, 1).Copy Destination:=Sheets("Kalkulation").Cells(Sheets("Kalkulation").Cells(65536, 1).End(xlUp).Row + 1, 1)
Range(Cells(y, 1), Cells(y, 18)).Interior.ColorIndex = 3
Case Is = 3
artikel = Cells(y, 1)
With Sheets("Kalkulation").Columns("A:A")
Set b = .Find(artikel, after:=Sheets("Kalkulation").Cells(1, 1), _
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
If Not b Is Nothing Then
yy = b.Row

Sheets("Kalkulation").Cells(yy, 1).ClearContents
End If
End With
Range(Cells(y, 1), Cells(y, 18)).Interior.ColorIndex = xlNone
End Select
Exit Sub

End Sub

Danke
Gruß
Carsten

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Blatt schützen
14.05.2003 13:32:53
L.Vira
Welches Blatt ist denn das active, das ist aus deinem Code nicht ersichtlich?
Re: Blatt schützen
14.05.2003 13:37:15
Carsten
Hallo,

das aktive Blatt heißt "Artikelauswahl". Hier ist auch das Makro enthalten.
Ich habs schon mit "Sheets("Artikelauswahl").protect" versucht aber das hat bisher auch nicht geklappt. Ich vermute, ich schreibe den Code immer an die falsche Stelle. Leider kann ich den Code nicht schrittweise prüfen (oder geht das doch, über F8 jedenfalls nicht).

Gruß
Carsten

Re: Blatt schützen
14.05.2003 13:49:14
L.Vira
Ich kann gar nicht erkennen, wo du den Schutz für das aktive Blatt aufhebst?
Re: Blatt schützen
14.05.2003 13:54:00
Carsten
Ich habe die Zeile so lange noch rausgenommen. Ich hebe den Blattschutz sofort zu Anfang auf, noch bevor ich den Schutz für das Kalkulationsblatt aufhebe.
Anzeige
Re: Blatt schützen
14.05.2003 14:02:51
L.Vira
Du solltesst grundsätzlich Option Explicit verwenden und alle Variablen deklarieren, das erleichtert die Fehlersuche.
Objektvariable für die Blätter verkürzen den Code erheblich.
Bei mir geht das problemlos:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim artikel As String, WS1 As Worksheet, WS2 As Worksheet
Dim x As Integer, y As Long, b As Range, yy As Long
Set WS1 = Sheets("Kalkulation")
Set WS2 = ActiveSheet
WS1.Unprotect
WS2.Unprotect
WS1.Cells.EntireRow.Hidden = False
'x = Target.Column
'y = Target.Row
Cancel = True
'Select Case Cells(y, x).Interior.ColorIndex
'Case Is = xlNone
'Cells(y, 1).Copy Destination:=WS1.Cells(WS1.Cells(65536, 1).End(xlUp).Row + 1, 1)
'Range(Cells(y, 1), Cells(y, 18)).Interior.ColorIndex = 3
'Case Is = 3
'artikel = Cells(y, 1)
'With WS1.Columns("A:A")
'Set b = .Find(artikel, after:=WS1.Cells(1, 1), _
'LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
'If Not b Is Nothing Then
'yy = b.Row
'
'WS1.Cells(yy, 1).ClearContents
'End If
'End With
'Range(Cells(y, 1), Cells(y, 18)).Interior.ColorIndex = xlNone
'End Select
Cancel = False
WS1.Protect Contents:=True
WS2.Protect Contents:=True

End Sub


Anzeige
Re: Blatt schützen
14.05.2003 14:06:47
Günter aus DO
Hallo Carsten,

ich würde den Befehl
Sheets("Kalkulation").protect

vor das "End Select" setzen.

Günter aus Do

Re: Blatt schützen
14.05.2003 14:21:47
Umbratus
Hallo Carsten

mit F9 kannst du einen Breakpoint setzen, an dem das Programm anhält. Ab da kannst du mit F8 Zeile für Zeile ausgeführen.


Gruß Umbratus

klappt, danke (o.T.)
14.05.2003 14:42:30
Carsten
Re: Blatt schützen
14.05.2003 15:11:33
Carsten
Danke für den Tip

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige