Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Blattschutz per Userform ein und ausschalten


Betrifft: Blattschutz per Userform ein und ausschalten von: Andreas
Geschrieben am: 25.09.2019 15:25:16

Hallo Zusammen,

auf diese Frage habe ich vor zwei Wochen bereits eine Lösung gesucht aber bin leider noch nicht weitergekommen.

Grob geht es darum in einer Datei mit eingeschaltetem Blattschutz eine Eingabe durch die Userform zuzulassen.

Vorab: Ich habe bereits versucht mit "Blatt.Protect userinterfaceOnly:=True" mein Problem zu lösen aber die Eingabe wird stellenweise immer noch blockiert, egal wie ich es versuche.

Daher benötige ich einen Code der vor Eingabe der Userform überprüft, ob ein Blattschutz drauf ist. Diesen deaktiviert (oder ignoriert falls kein Blattschutz aktiviert ist) und am Ende der Eingabe der Blattschutz wieder aktiviert wird (Wenn dieser zuvor auch aktiviert war).

Ich weiß, dass der Blattschutz normal in meinem Modul programmiert wird, kann ich diesen dann trotzdem mit der Userform unter einen Hut bringen?

Ist das möglich? Und wenn ja wie muss dich diesen programmieren?

Vielen Dank für Hilfe

  

Betrifft: AW: Blattschutz per Userform ein und ausschalten von: Werner
Geschrieben am: 25.09.2019 15:38:21

Hallo Andreas,

ich wüsste nicht, warum das mit UserInterfaceOnly nicht gehen sollte.
Das Makro gehört ins Codemodul von "DieseArbeitsmappe"

Private Sub Workbook_Open()
'Blattname anpassen
Worksheets("Tabelle1").Protect Password:="Andreas", userinterfaceonly:=True
End Sub
Nach Einfügen des Makros die Datei speichern, schließen und wieder öffnen.

Gruß Werner


  

Betrifft: AW: Blattschutz per Userform ein und ausschalten von: Andreas
Geschrieben am: 26.09.2019 07:23:16

Hallo Werner,

das Makro ist im Moment in meinem Modul, kann das mein Problem sein?

Sub Blattschutz_ein()
Dim Blatt As Worksheet
For Each Blatt In ThisWorkbook.Worksheets
    Blatt.Protect userinterfaceOnly:=True, Password:="Andreas"
Next Blatt
End Sub
Komisch/ auffallend ist auch, dass an meinem Rechner das Makro immer funktioniert hat aber an einem fremden Rechner nicht.


  

Betrifft: AW: Blattschutz per Userform ein und ausschalten von: Andreas
Geschrieben am: 26.09.2019 08:22:42

Hallo Werner,

ich habe das Makro jetzt in "DieseArbeitsmappe" gepackt, leider immer noch nicht erfolgreich.
An meinem Rechner wird die Eingabe zugelassen aber an einem anderen Rechner nicht.

Die Debug Funktion verweist auf u.s. Codeabschnitt (letzte Zeile)

Private Sub CommandButton1_Click()

If (Fehler01 > 0) And Fehler01.Text <> "" Then
    Wert = ws.Cells(10, fehlerspalte)
    Wert = Wert + Fehler01
    ws.Cells(10, fehlerspalte) = Wert

End Sub
Bitte um Hilfe (Kann die Datei leider nicht hochladen)

Viele Grüße


  

Betrifft: AW: Blattschutz per Userform ein und ausschalten von: Andreas
Geschrieben am: 26.09.2019 07:53:43

Hallo Werner,

meine Userform muss in Modul1 ein Makro starten, dass zusätzlich auch Daten ändert. Kann dass das Problem sein, dass das über die "userinterfaceonly:=True" Berechtigung hinaus geht?


  

Betrifft: AW: Blattschutz per Userform ein und ausschalten von: Werner
Geschrieben am: 26.09.2019 11:12:03

Hallo Andreas,


zu deiner Frage: Nein
Wenn es um alle Blätter geht, dann mußt du im Workbook_Open auch über alle Blätter laufen und den Blattschutz setzen.

Private Sub Workbook_Open()
Dim Blatt As Worksheet

For Each Blatt In ThisWorkbook.Worksheets
    Blatt.Protect Password:="Andreas", userinterfaceOnly:=True
Next Blatt
End Sub
Das Makro in deinem Modul, mit dem du den Blattschutz setzt, bitte löschen.

Dann schau mal in deinem kompletten Code nach, ob du da irgendwo den Blattschutz aufhebst und anschließend wieder neu setzt. Wenn ja löschen.

Gruß Werner


  

Betrifft: AW: Blattschutz per Userform ein und ausschalten von: Torsten
Geschrieben am: 25.09.2019 15:38:56

Hallo,

also mal als Hinweis. Mit

If Sheets("Tabelle1").ProtectContents = True Then
    Sheets("Tabelle1").Unprotect "???"
End If

kannst du abfragen, ob der Blattschutzgesetzt ist und eventuell aufheben. Wie in diesem Beispiel.

Gruss Torsten


  

Betrifft: AW: Blattschutz per Userform ein und ausschalten von: Andreas
Geschrieben am: 26.09.2019 07:24:56

Hallo Torsten,

vielen Dank, ich werde das mal versuchen.


Beiträge aus dem Excel-Forum zum Thema "Blattschutz per Userform ein und ausschalten"