Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1328to1332
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
Inhaltsverzeichnis

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

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

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 

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
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige