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

Makro bei Fehlermeldung ‚Blattschutz’

Makro bei Fehlermeldung ‚Blattschutz’
21.08.2002 22:05:31
Urs
Hallo zusammen
Ich suche nach einer Möglichkeit um bei einem geschütztem Tabellenblatt anstatt der Msg Box (‚die Zelle oder das Diagramm das sie versuchen zu ändern, ist geschützt etc....’) ein Makro aktiviert wird.
Weiss jemand Rat?

Vielen Dank im Voraus
Urs

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro bei Fehlermeldung ‚Blattschutz’
21.08.2002 22:22:00
Gabor
Hi Urs,

ich habe zwar Version 97, aber eigentlich dürfte es auch bei Dir funktionieren ...


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.DisplayAlerts = False
MsgBox "MakroAufruf", vbOKOnly
Application.DisplayAlerts = True
End Sub

Wichtig ist, das du das Worksheet_SelectionChange-Ereignis verwendest, wenn es nur für ein Blatt gilt, ansonsten verwende :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)

(unter DieseArbeitsmappe o. ThisWorkbook)

Gruß Gabor

Re: Makro bei Fehlermeldung ‚Blattschutz’
21.08.2002 23:19:26
Urs
Hallo Gabor,
das ist es nicht genau was ich suche.
Bei Deinem Beispiel erscheint die MsgBox bei jedem Wechsel der Zelle.
Sie soll jedoch nur aktiviert werden wenn versucht wird eine Änderung in einer Zelle beim geschützten Tabellenblatt vorzunehmen.
Die Fehlermeldung die dann erscheint, soll unterdrückt werden und dafür die MsgBox aktiviert werden.

liebe Grüsse
Urs



Anzeige
Re: Makro bei Fehlermeldung ‚Blattschutz’
21.08.2002 23:33:00
Axel
Hallo Urs,

Gabor hat sich bzgl. der Bezeichnung des Ereignisses verschrieben. Er meinte wohl

Worksheet_Change() statt Worksheet_SelectionChange()

Aber ich fürchte, das hilft Dir nicht weiter. Die Meldung, die Excel, beim Versuch eine geschütztes Blatt zu ändern, ausgibt, greift vor dem Change()-Ereignis.


Man könnte das Blatt ungeschützt lassen. Bei Änderungen wird dann das Change()-Ereignis ausgelöst, in dem dann die Msgbox ausgegeben wird. Das Problem ist, das der Zellwert dann bereits geändert wurde und der alte Wert nicht mehr zur Verfügung steht.

Außerdem wird das Ereignis erst beim Betätigen der Return-Taste beziehungsweise - sofern Änderungen vorgenommen wurden - beim sonstigen Verlassen der Zelle ausgelöst.

Nicht gerade befriedigend, aber ich sehe da keinen vernünftigen Ansatz.

Gruß
Axel

Anzeige
Weiss sonst jemand einen Ansatz
21.08.2002 23:42:59
Urs
Hallo Axel,
Soweit war mir das vorher auch schon klar. Nur diese Tabelle muss aus verschiedenen Gründen geschützt sein.

Vielleicht weiss sonst jemand Rat die besagte Meldung zu unterdrücken, zu umgehen...???

eine friedliche Nacht wünsche ich Euch allen da Draussen!!

Urs

Re: Makro bei Fehlermeldung ‚Blattschutz’
22.08.2002 00:42:02
L.Vira

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If ActiveSheet.ProtectContents = True Then
If ActiveCell.Locked = True Then
ActiveSheet.Unprotect
MsgBox "Do what You wanne do!"
End If
End If
End Sub

Wie weiter, musst du wissen...

Re: Makro bei Fehlermeldung ‚Blattschutz’
22.08.2002 08:59:01
Urs
Hallo L.Vira
Vielen Dank für Deinen Vorschlag
doch
auch hier wird das Makro bereits ausgelöst wenn ich von der einen Zelle zur andern gehe.
Es dürfte nur ausgelöst werden, wenn ich eine Änderung vornehmen möchte (ich denke die 'SelectionChange-Methode' ist nicht der richtige Ansatz).

liebe Grüsse
Urs

Anzeige
Re: Makro bei Fehlermeldung ‚Blattschutz’
22.08.2002 14:07:04
Gabor
Hallo Urs ...

Was genau soll den passieren ?

Gabor

Re: Makro bei Fehlermeldung ‚Blattschutz’
22.08.2002 20:50:40
Urs
Hallo Gabor,
Genau passieren soll:
Das Tabellenblatt ist im normalfall geschützt. Falls jemand eine Änderung vornehmen will muss der Schutz aufgehoben werden (wird mit Schaltfläche und Makro ausgelöst).
Auf dem Tabellenblatt befinden sich kombinationsfelder, die linked cell gleich unterhalb. Falls nun jemand ohne den Blattschutz aufzuheben im Steuerelement eine Auswahl trifft (z.B. neu 'ja'statt 'nein') dann erscheint diese Meldung, dass das Tabellenblatt geschützt ist. Soweit so gut.
Das problem dabei: Wird nun nur die Meldung weggeglickt dann bleibt der Inhalt des Steuerelementes auf 'ja', den der Zelle jedoch auf 'nein'.
Würde vor dieser Meldung dann ein Makro ausgelöst könnte das Problem gelöst werden.

Anzeige
Ich habs....
22.08.2002 21:12:00
Urs
Mann bin ich doof, so richtig schön in Umwegen gedacht, wenn es auch direkt gehen würde....
mit
Privat cmdBox_GotFocus()
ActiveSheet.unprotect
end sub

....und... es läuft....

Thanks

Es funktioniert
22.08.2002 21:54:48
Urs
Its so easy wenn man weiss wie...

Mit private sub cmdBox_GotFocus und LostFocus schutz aufheben bzw schützen...

Danke für Eure Bemühungen
Urs

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige