Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blatt sperren für alle Eingaben

Blatt sperren für alle Eingaben
19.09.2013 12:16:37
Kai
Hi Forum,
ich suche ein makro, das folgendes bewirkt:
wenn ein Tabellenblatt geöffnet wird, sollen dem Nutzer Änderungen daran nur möglich sein, wenn es das letzte Tabellenblatt in der Arbeitsmappe ist.
Also etwas wie:
 Private Sub Worksheet_Activate()
If Sheets.Count > ActiveSheet.Index Then 
(hier müsste ein Code hin, der Änderungen am Blatt verhindert)...
Die Tabellenblätter enthalten zahlreiche gesperrte und nicht gesperrte Zellen.
Folgende Lösung geht nicht:
Einfach alle Zellen sperren, wenn ein Blatt nicht mehr das letzte ist.
Es soll nämlich durchaus möglich sein, das letzte Blatt wieder zu löschen. Und dann müssen im bisher vorletzten Blatt wieder die gleichen Zellen gesperrt bzw nicht gesperrt sein wie vorher.
Ich hoffe, das klingt jetzt nicht zu verwirrend.
Weiß jemand eine Lösung?
Vielen Dank für Eure Mühe
Kai

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt sperren für alle Eingaben
19.09.2013 12:47:55
Rudi
Hallo,
und wenn die Mappe ohne Makros gestartet wird?
oder ein Blatt einfach nach hinten geschoben wird?
In DieseArbeitsmappe:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Sh.Next Is Nothing Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End Sub

Gruß
Rudi

Anzeige
AW: Blatt sperren für alle Eingaben
19.09.2013 15:40:48
Kai
Hallo Rudi,
vielen Dank für deinen Vorschlag.
Er produziert bei mir de Laufzeitfehler 1004
(Die Methode 'Undo' für das Objekt '_Application' ist fehlgeschlagen).
Umgesetzt habe ich deinen Vorschlag so (in DieseArbeitsmappe):

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Index > 3 Then
If Not Sh.Next Is Nothing Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub

weil ich die ersten Blätter von der Prüfung ausnehmen wollte.
Hast du ne Ahnung, woran das liegen könnte?
Gruß
Kai

Anzeige
AW: Blatt sperren für alle Eingaben
19.09.2013 12:55:34
fcs
Hallo Kai,
ich weiss nicht ob meine Lösung für dich akzeptabel ist.
Per Makro könnte man dafür sorgen, dass bei aktivierten Makros nur im letzten Register Zellen selektiert werden können.
Bei dem Versuch eine Zelle zu selektieren wird immer automatisch eine bestimmte geschützte Zelle selektiert.
Gruß
Franz
'Code unter "DieseArbeitsmappe"
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Erlaubt die Selektion von Zellen nur im letzten Tabellenblatt.
If Sh.Index 

Anzeige
AW: Blatt sperren für alle Eingaben
19.09.2013 16:45:32
Kai
Hallo Franz,
das klappt super! Ich habe die letzte Codezeile auf
Application.EnableEvents = True 

geändert und jetzt habe ich genau was ich wollte.
Vielen Dank für deine schnelle Hilfe!
Schöne Grüße
Kai
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige