Laufzeitfehler '1004' - unprotect Methode
#1
Hallo zusammen,

ich habe folgenden VBA-Code geschrieben. Die Arbeitsmappe ist frei gegeben, da mehrere Kollegen damit arbeiten.

Wenn ich Exclusivrechte habe, funktioniert das Makro einwandfrei. Sobal ich es frei gegeben habe, kommt der Laufzeitfehler '1004' - die unprotect-Methode funktioniert nicht.

Private Sub CommandButton3_Click()

    ActiveSheet.Unprotect
    
    Selection.AutoFilter
    Range("A11:AC1500").Select
    Selection.AutoFilter

    ActiveSheet.Range("$A$11:$AC$1500").AutoFilter Field:=2, Criteria1:=Array( _
        "-", "offen", "vor Beginn", "ZF Ende", "Ende ZF", "="), Operator:=xlFilterValues
    
    Dim MyMessage As Object, MyOutApp As Object
    Dim SavePath As String
    Dim AWS As String
    
    AWS = "O:\Prj\BLB\S\StructKurt\Masterlisten\Masterliste.pdf"

    'InitializeOutlook = True
    Set MyOutApp = CreateObject("Outlook.Application")
    'Nachrichtenobject erstellen
    Sheets("Masterliste").ExportAsFixedFormat Type:=xlTypePDF, Filename:="O:\Prj\Masterliste.pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Set MyMessage = MyOutApp.CreateItem(0)
    With MyMessage
        .To = "xyz"
        .Subject = "Masterliste 5950" & " " & Date & " " & Time
        'Hier wird die temporär gespeicherte Datei als
        'Attachment zugefügt
        .attachments.Add AWS
        'Hier wird eine normale Text Mail erstellt
        'Hier wird die HTML Mail erstellt
        .HTMLBody = "Hallo zusammen," & _
        "

" & _
        "anbei die tägliche Masterliste." & _
        "

" & _
        "Gruß" & _
        "

" & _
        "Team 5950"
        
        'Hier wird die Mail nochmals angezeigt
        .display
        'Hier wird die Mail gleich in den Postausgang gelegt
        '.Send
        'Hier wird die temporäre Datei wieder gelöscht
        Kill AWS
        
    Selection.AutoFilter
    Range("A11:AC1500").Select
    Selection.AutoFilter
    
    ActiveWorkbook.SaveCopyAs "O:\Prj\Masterlisten\ " & ActiveSheet.Name & "_" & Format(Now, "yymmdd_hhmm") & ".xlsm"
    
    Range("F12:F1500").Copy
    Range("G12").PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
    
    ActiveSheet.Range("$A$11:$AC$1500").AutoFilter Field:=2, Criteria1:=Array( _
    "-", "offen", "vor Beginn", "ZF Ende", "Ende ZF", "="), Operator:=xlFilterValues
    
    Range("D1").Select

End With

Kann mir da jemand helfen, warum dieser Fehler kommt?

VG und Danke vorab
Stefan
Top
#2
Moin Stefan!
Zitat:Kann mir da jemand helfen, warum dieser Fehler kommt?

Es gibt halt nicht wenige Restriktionen in freigegebenen Arbeitsmappen (ich suche gleich noch einen Link).
Aufheben des Blattschutzes gehört jedenfalls dazu.

Update:
Einschätzung zweier MVPs:
http://www.office-loesung.de/ftopic125610_0_0_asc.php

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
Hallo Stefan,

(08.08.2016, 14:45)StefanGruber_LA schrieb: Kann mir da jemand helfen, warum dieser Fehler kommt?

Du hast Dir die Frage doch schon selbst beantwortet:

(08.08.2016, 14:45)StefanGruber_LA schrieb: Wenn ich Exclusivrechte habe, funktioniert das Makro einwandfrei.

Das siehst Du doch selber, das die Schutzbuttons ausgegraut sind, wenn die Mappe freigegeben ist.
Warum sollte das in VBA gehen, wenn es manuell auch nicht geht!? Wink

Gruß Uwe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste