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

Makroproblem - DAU ??

Makroproblem - DAU ?
05.08.2006 23:23:50
Dirk
Hallo EXCEL-Spezies,
habe mich ohne VBA-Kenntnisse mal an ein Thema herangewagt, an dem ich nun fast verzweifle.
Über einen CommandButton im Blatt 'allg' möchte ich alle Blätter in der Mappe (ohne Diagramme) jeweils mit Blattschutz versehen od. diesen aufheben (ohne PW). Das leere Blatt 'test' dient nur als "Startpunkt" - od. wie man das auch nennen mag.
Hier mal der Code:

Private Sub CommandButton1_Click()
Dim s As String, Blatt As Worksheet, ok As Boolean
Application.ScreenUpdating = False
If Sheets("test").Unprotect Then		'HIER fehlt mir die richtige Syntax
For Each Blatt In ThisWorkbook.Worksheets
Blatt.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
s = "A U S"
ok = False
Else
For Each Blatt In ThisWorkbook.Worksheets
Blatt.Unprotect ("")
s = "A N"
ok = True
End If
Me.CheckBox1.Caption = s
Application.ScreenUpdating = True
End Sub

Die Beschriftung des Buttons ändert sich je nach Status, wobei ich die Logik dahinter noch nicht getestet habe.
Freue mich über jede Hilfe !
MfG Dirk N.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
If Sheets("test").ProtectContents Then
05.08.2006 23:29:58
Grüße Boris
AW: Makroproblem - DAU ?
05.08.2006 23:33:07
Josef
Hallo Dirk!
Das geht zB. so.
Private Sub CommandButton1_Click()
Dim objWs As Worksheet
Dim blnProtect As Boolean

blnProtect = CommandButton1.Caption = "Blattschutz setzen"

For Each objWs In ThisWorkbook.Worksheets
  If blnProtect Then
    objWs.Protect
  Else
    objWs.Unprotect
  End If
Next

CommandButton1.Caption = IIf(blnProtect, "Blattschutz aufheben", "Blattschutz setzen")

End Sub


Gruß Sepp

Anzeige
AW: Makroproblem - DAU ?
05.08.2006 23:46:47
Ramses
Hallo
Neben dem Code von Josef noch folgenden Hinweis:
Warum legst du das ganze nicht gleich in die Checkbox und fragst den Wert der Checkbox direkt ab ?
Option Explicit

Private Sub CheckBox1_Click()
    Dim protOn As String, protOFF As String
    Dim wks As Worksheet
    protOn = "A N"
    protOFF = "A U S"
    Application.ScreenUpdating = False
    If Me.CheckBox1.Value = False Then
        For Each wks In ThisWorkbook.Worksheets
            With wks
                .Unprotect
            End With
        Next
        With Me.CheckBox1
            .Caption = protOFF
            .Value = False
        End With
    Else
        For Each wks In ThisWorkbook.Worksheets
            With wks
                .Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
            End With
        Next
        With Me.CheckBox1
            .Caption = protOn
            .Value = True
        End With
    End If
    Application.ScreenUpdating = True
End Sub


Gruss Rainer
Anzeige
AW: Makroproblem - DAU ?
05.08.2006 23:47:24
Ramses
Hallo
Neben dem Code von Josef noch folgenden Hinweis:
Warum legst du das ganze nicht gleich in die Checkbox und fragst den Wert der Checkbox direkt ab ?
Option Explicit

Private Sub CheckBox1_Click()
    Dim protOn As String, protOFF As String
    Dim wks As Worksheet
    protOn = "A N"
    protOFF = "A U S"
    Application.ScreenUpdating = False
    If Me.CheckBox1.Value = False Then
        For Each wks In ThisWorkbook.Worksheets
            With wks
                .Unprotect
            End With
        Next
        With Me.CheckBox1
            .Caption = protOFF
            .Value = False
        End With
    Else
        For Each wks In ThisWorkbook.Worksheets
            With wks
                .Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
            End With
        Next
        With Me.CheckBox1
            .Caption = protOn
            .Value = True
        End With
    End If
    Application.ScreenUpdating = True
End Sub


Gruss Rainer
Anzeige
AW: Makroproblem - DAU ?
05.08.2006 23:59:28
Dirk
Hallo Rainer
zu deiner Frage: VBA ist für mich noch ein Buch mit sieben Siegeln - aber ich arbeite dran... Muß erstmal nachschauen, was eine CheckBox überhaupt ist... ;-)
Leider kann ich deinen Vorschlag erst morgen testen, aber da ich mir fast sicher bin, daß es funktionieren wird (u. natürlich ohnehin für deine Bemühungen)
vielen Dank u. ein schönes WE.
MfG Dirk N.
AW: Makroproblem - DAU ?
05.08.2006 23:50:50
Dirk
Hallo Boris u. Sepp,
danke für eure Hilfe!
@boris danach erhielt ich die Meldung: Fehler beim Kompilieren. Else ohne If
"Arme Else, aber sie wird ihren If schon noch finden..." (kl. Scherz, aber hat leider nicht funktioniert).
@sepp Funktioniert zwar bestens, aber habe ich denn sooo weit daneben gelegen?
Jetzt verfalle ich vollkommen in Depressionen: Soooo lange gebastelt u. alles war für die Katz... Naja, egal - Hauptsache es läuft.
Ich wünsche Euch noch ein schönes WE.
MfG Dirk N.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige