5.3k Aufrufe
Gefragt in Tabellenkalkulation von petra65 Experte (1.8k Punkte)
Hallo, guten Morgen,

ich benötige mal wieder Eure Hilfe .....

Ich habe eine Tabelle mit diversen Befehlsschaltflächen, nun möchte ich wenn z.B. die Schaltfläche "Alle Arbeitsblätter schützen" ausgeführt wurde in der Zelle F3 desselben Blattes die Ausgabe "Arbeitsblätter sind geschützt".

Ich kriege es mal wieder nicht hin ;-( und finde auch im Internet keine entsprechende Hilfe ...


Das Makro sieht folgendermassen aus:

Sub Passwortabfrage_BlattSchutz_EIN()
Dim Passwort As String, Vergleichspasswort As String
Vergleichspasswort = "159"
Passwort = InputBox("Bitte Passwort Eingeben", "Passwortabfrage")
If Passwort <> Vergleichspasswort Then MsgBox "Passwort falsch"
Exit Sub
Dim s
Application.ScreenUpdating = False
For s = 1 To Sheets.Count
Sheets(s).Protect
Next s
Application.ScreenUpdating = True
End Sub


Hoffe auf Hilfe und vielen Dank schonmal ....

Gruss - Petra

18 Antworten

0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo,

falls es von Interesse ist .... ich habe einen Lösungsweg gefunden.

Ich habe im Internet ein Makro gefunden, dass die Hintergrundfarbe beim Schutz bzw. Entsperrung ändert (ähnlich einer Ampel), dieses habe ich erweitert, und erhalte nun die ensprechenden Ausgaben.

Das von Rainer erstellt (und erweiterte Makro) sieht dann so aus:

Option Explicit

Sub Passwortabfrage_BlattSchutz_EIN()
Dim strPasswort As String, strVergleichspasswort As String
Dim intS As Integer
strVergleichspasswort = "159"
strPasswort = InputBox("Bitte Passwort Eingeben", "Passwortabfrage")
If strPasswort <> strVergleichspasswort Then
MsgBox "Passwort falsch"
Exit Sub
End If
Application.ScreenUpdating = False
For intS = 1 To Sheets.Count
Worksheets(intS).Cells(3, 6).Value = "Arbeitsblätter sind geschützt"
Sheets(intS).Protect
Next
If Sheets(1).ProtectContents Or Sheets(1).ProtectDrawingObjects Or Sheets(1).ProtectScenarios Then
Sheets(1).Unprotect
Range("M3").Interior.ColorIndex = 3
Range("M3") = "Arbeitsblätter sind geschützt"

Sheets(1).Protect
Else
Range("M3").Interior.ColorIndex = 4
Range("M3") = "Arbeitsblätter sind NICHT geschützt"
End If
Application.ScreenUpdating = True
End Sub

Vielen Dank nochmals

Gruss - Petra
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Petra,

anbei die geänderte Datei.

Habe anstatt der Formularschaltflächen -ActiveX-CommandButton eingesetzt und den Code direkt hinter diese gelegt.
Schau es Dir mal an.

www.file-upload.net/download-1697167/re_MB_Behandlungen.xls.html

Gruß
Rainer
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo Rainer,

gefällt mir viel besser, arbeitet schneller, die Datei ist (minimal) kleiner, die Button sind komfortabler zu gestalten ... aber

In Deiner Test-Tabelle kann ich die Button anklicken (bis ich schwarz werde), es funktioniert alles wunderbar.

In meiner Original-Tabelle klicke ich diverse Male (10 Mal ?) und bekomme dann die Erste Fehlermeldung, diese lautet:

Laufzeitfehler 1004
Anwendungs- oder Objektdefinierter Fehler,

Bezieht sich auf den KlickButton 2
Worksheets("MAKROS").Cells(3, 13).Value = "Blattschutz ist aufgehoben"

Ich habe in Deinem Code NICHTS verändert !! !!
Im Eigenschaftsfenster sieht auch alles gleich aus.
Die beiden überflüssigen Module habe ich gelöscht.

Hast Du eine Idee woran es liegen kann, ein Neustart bringt leider nichts ;-(

Gruss - Petra
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Petra,

die Zellen M3 und M6 müssen entsperrt sein (Format > Zellen > Schutz ), das war in Deiner Datei nicht so, habe ich erst gemacht.
Ich vermute dass da der Fehler liegt.

Gruß
Rainer
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Guten Morgen,

;-) genau da lag der Fehler ... super toll. Nun funktioniert
es Problemlos.

Vielen, vielen Dank ...., das hätte ich nie hinbekommen.


Schönen Tag noch
Petra
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Petra,

mir fiel noch ein, dass es auch noch einfacher geht.

Anstatt 4 CommandButton, kann man auch nur 2 ToggleButton einsetzen, das spart zwei Makros, da jeder Button mit 2 Funktionen belegt werden kann.

Wichtig, die Zellen B3; B6; D3; D6 müssen freigegeben sein!

Schau Dir's an und urteile selbst.

www.file-upload.net/download-1697916/re2_MB_Behandlungen.xls.html

Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Petra,

bevor Du beim Testen ins Grübeln kommst, anbei die Mappe noch mal.
Hatte noch einen Fehler festgestellt.

www.file-upload.net/download-1697985/re3_MB_Behandlungen.xls.html

Gruß
Rainer
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo Rainer,

klasse ;-)))

Auf sowas würde ich nie kommen ..... habe ich sofort umgesetzt.

Vielen Dank und viele Grüße

Petra
...