Microsoft Excel

Herbers Excel/VBA-Archiv

Makro trotz Blattschutz

Betrifft: Makro trotz Blattschutz von: Andre
Geschrieben am: 01.02.2020 21:13:53

Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen denn ich bin mit meinem Latein am Ende.

Ich setzte beim Arbeitsmappe öffnen einen Blattschutz.

Private Sub Workbook_Open()
   Worksheets("Tabelle1").Protect Password:="Test", Contents:=True, UserInterfaceOnly:=True
End Sub
Dann möchte ich im Blatt "Tabelle1" mein Makro ausführen was aber auf Grund des Blattschutzes auf Fehler läuft. Wo ist denn hier der Fehler??? Ich setze doch extra UserInterfaceOnly auf True....

Ich hoffe mir kann jemand weiterhelfen.
Wünsche erstmal noch einen schönen Samstag Abend.

Grüße Andre

Betrifft: welcher Code, welcher Fehler ?
von: Matthias L
Geschrieben am: 01.02.2020 21:45:41

Hi

Der Fehler entsteht doch sicher nicht beim Workbook_Open()
sondern 20cm vor dem Bildschirm.

Wer soll denn wissen welcher Fehler bei Dir aufläuft und warum, wenn Du keine Informationen
lieferst.

Gruß Matthias

Betrifft: AW: welcher Code, welcher Fehler ?
von: Andre
Geschrieben am: 02.02.2020 08:30:13

Hi Matthias,

ich denke auch das es sich hier um einen Layer 8 Fehler handelt ;-)
Aber das ist sicher bei 99% der Beiträge in dem Forum der Fall. Die Frage ist ja, wo liegt der Fehler.

Es kommt die Fehlermeldung: Laufzeitfehler 1004 Anwendungs- oder Objektdefinierter Fehler.
Dieser Fehler erschein bei der Auswahl eines Private Sub Worksheet_SelectionChange(ByVal Target As Range) Makros, in der durch den Code geschützten Arbeitsmappe.

Ohne den vorher gesetzten Blattschutz läuft mein Makro ohne Probleme. Es müsste also an dem Setzten des Blattschutzes liegen.

Gruß Andre

Betrifft: AW: welcher Code, welcher Fehler ?
von: Matthias L
Geschrieben am: 02.02.2020 09:18:39

Hi

Zitat
Es müsste also an dem Setzten des Blattschutzes liegen.

Antwort
NEIN, denn ich bekomme keine Fehlermeldung.

Gruß Matthias

Betrifft: AW: welcher Code, welcher Fehler ?
von: Andre
Geschrieben am: 02.02.2020 10:06:55

Danke für die schnelle Antwort. Nur leider komme ich kein Stück weiter.

Ich habe gerade festgestellt das mein Makro funktioniert wenn ich Contents auf False setze. Nur leider kann ich dann auch die Zellen bearbeiten welche geschützt sein sollen....

Zur Darstellung eine Datei anbei.
https://www.herber.de/bbs/user/134919.xlsm

Danke für eventuelle Hinweise und Grüße

Betrifft: ich kann die Datei nicht öffnen ...
von: Matthias L
Geschrieben am: 02.02.2020 10:21:38

Hallo Andre,

ich kann die Datei leider nicht öffnen ...



Gruß Matthias

Betrifft: AW: ich kann die Datei nicht öffnen ...
von: Andre
Geschrieben am: 02.02.2020 10:48:56

Hier ist der Wurm drin.....
Ich habe den Code in eine andere Datei kopiert. Ich hoffe diese lässt sich öffnen.

https://www.herber.de/bbs/user/134921.xlsm

Grüße Andre

Betrifft: AW: ich kann die Datei nicht öffnen ...
von: Nepumuk
Geschrieben am: 02.02.2020 12:08:12

Hallo Andre,

manche sachen kann ein Makro trotz UserInterfaceOnly nicht. Z.B. einfügen nach kopieren oder eben eine Gültigkeit einfügen. Also:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim objCell As Range
    Dim lngColumn As Long, lngRow As Long
    Dim strTemp As String
    If Target.Count = 1 Then
        If Not Intersect(Target, Range("C12:L67")) Is Nothing Then
            Call Target.Validation.Delete
            Set objCell = Tabelle2.Columns(1).Find(What:=Cells(Target.Row, 1).Text, _
                LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
            If Not objCell Is Nothing Then
                lngRow = objCell.Row
                With Tabelle2
                    For lngColumn = 2 To .Cells(lngRow, .Columns.Count).End(xlToLeft).Column
                        With .Cells(lngRow, lngColumn)
                            If IsNumeric(.Text) Then strTemp = strTemp & "," & .Text
                        End With
                    Next
                End With
                If strTemp <> vbNullString Then
                    Call Unprotect(Password:="nikolai")
                    With Target.Validation
                        Call .Add(Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                            Operator:=xlBetween, Formula1:=Mid$(strTemp, 2))
                        .InCellDropdown = True
                    End With
                    Call Protect(Password:="nikolai")
                End If
            End If
        End If
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: ich kann die Datei nicht öffnen ...
von: Andre
Geschrieben am: 02.02.2020 12:23:41

Nepumuk, du sollst den schönsten Sonntag haben den man sich vorstellen kann!!!!

Grüße und sicher bis bald.

Beiträge aus dem Excel-Forum zum Thema "Makro trotz Blattschutz"