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

löschen von Blättern verhindern

779 views
Skip to first unread message

Karin Stankowsky

unread,
Mar 30, 2003, 2:00:36 PM3/30/03
to
Wie kann ich mit VBA verhindern, dass einzelne Blätter
gelöscht werden

Anton Haumer

unread,
Mar 30, 2003, 2:04:51 PM3/30/03
to
Hallo Karin

schau Dir mal in der Online-Hilfe die Dokumentation
zur Protect-Methode an.

HTH - LG - Toni

Karin Stankowsky schrieb:

Karin Stankowsky

unread,
Mar 30, 2003, 3:32:51 PM3/30/03
to

>-----Originalnachricht-----
>.
>Danke. Leider komme ich mit der Online-Hilfe nicht weiter.
Welches Ereingis für welches Objekt soll angesprochen
werden, um zu verhindern, dass ein Bestimmtes Blatt aus
der Mappe entfernt wird?
Da ich ein VBA- Anfänger bin, würde mich über etwas
genauere Beschreibung sehr freuen
Karin

Anton Haumer

unread,
Mar 30, 2003, 3:52:06 PM3/30/03
to
Hallo Karin,

um zu verhindern, dass der User Tabellen löscht,
kannst Du in WorkBookOpen()
ThisWorkBook.Protect Passwort, Struktur, Fenster
Passwort: String, Struktur und Fenster: Boolean
verwenden analog zum "manuellen Schutz"
Extras - Schutz - Arbeitsmappe schützen.

WorkBookOpen() wird jedoch so wie der gsamte VBA-Code
nicht ausgeführt, wenn der User Makros deaktiviert.

Wieso willst Du das in VBA machen, das genügt doch "manuell"?

Anton Haumer

unread,
Mar 30, 2003, 4:02:18 PM3/30/03
to
o.k. jetzt komm ich erst mit!
Du willst nicht verhindern dass irgendeine Tabelle gelöscht wird
sondern dass eine ganz bestimmte Tabelle gelöscht wird!
Ich nehme an andere Tabellen darf der User löschen?

Ich weiss ad hoc kein Ereignis das durch "Tabelle löschen"
ausgelöst wird ...

Muss der User das zu schützende Tabellenblatt sehen?
Wenn nein, kannst Du es im Eigenschaftsfenster des Projekts.
Explorers total vor ihm verbergen (Visible = 2 xlSheetVreyHidden).

Melanie Breden

unread,
Mar 30, 2003, 4:47:41 PM3/30/03
to
Hallo Karin,

"Karin Stankowsky" schrieb:

>> Wie kann ich mit VBA verhindern, dass einzelne Blätter
>> gelöscht werden
>.
>Danke. Leider komme ich mit der Online-Hilfe nicht weiter.
>Welches Ereingis für welches Objekt soll angesprochen
>werden, um zu verhindern, dass ein Bestimmtes Blatt aus
>der Mappe entfernt wird?
>Da ich ein VBA- Anfänger bin, würde mich über etwas
>genauere Beschreibung sehr freuen

Klicke in Excel mit der rechten Maustaste auf das grüne Excel-Icon
neben dem Menüpunkt "Datei" und wähle Code anzeigen".

Jetzt bist du im Codeblatt von "DieseArbeitsmappe".
Füge folgenden Ereignis-Prozeduren in die rechte Fensterhälfte ein:

'#####################################################
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "Tabelle1" Then
ThisWorkbook.Unprotect Password:=("Test")
Application.CommandBars("Ply").Enabled = True
End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
ThisWorkbook.Protect Password:=("Test"), Structure:=True
Application.CommandBars("Ply").Enabled = False
End Sub
'#####################################################

In deiner Arbeitsmappe ist jetzt nur das Tabellenblatt "Tabelle1" vor
umbenennen, verschieben oder löschen geschützt.
Passe den Blattnamen sowie das Paßwort im Code an deine Umgebung an.

Kommst du damit weiter?

--
mit freundlichen Grüßen
Melanie

____________________
Melanie Breden
[Microsoft MVP für Excel]

Karin Stankowsky

unread,
Mar 31, 2003, 2:30:27 PM3/31/03
to
Hallo Melanie,
Dein Ansatz hat mir weitergeholfen,
Der Code hat nicht so ganz funktioniert.
Nach kleinen Änderungen bin ich jetzt zu folgendem
Ergebnis gekommen:
************************************

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Tabelle1" Then

ThisWorkbook.Protect Password:=("Test"),
Structure:=True
Application.CommandBars("Ply").Enabled = True
Else

ThisWorkbook.Unprotect Password:=("Test")

End If
End Sub
*****************************************
Das klappt ganz gut.
Vielen Dank und schöne Grüße
Karin
>-----Originalnachricht-----

>.
>

0 new messages