Microsoft Excel

Herbers Excel/VBA-Archiv

Excel-Datei schreibgeschütz öffnen -> funktioniert

Betrifft: Excel-Datei schreibgeschütz öffnen -> funktioniert von: Schmitty
Geschrieben am: 17.09.2014 12:02:15

Hallo zusammen,

ich habe hier eine Excel-Datei, welche beim Start ein automatisches Makro aufruft um die Tabellenballt-Formatierung einer anderen Datei (auf dem Server) zu kopieren. Dazu öffnet das Makro die andere Datei (auf dem Server), kopiert die Formatierung und schließt die Datei wieder.

Da ja an der Datei auf dem Server keine Änderungen vorgenommen werden, reicht hier das Öffnen als schreibgeschützter Datei mit folgendem Code:

Workbooks.Open Filename:="Z:\kartei\Adressen.xlsm", ReadOnly:=True
Jetzt kann es aber mal zufällig vorkommen, das ein anderer User die Datei auf dem Server geöffnet hat und dort (berechtigt) änderungen vornimmt.

Wenn ich nun aber meine lokale Datei öffne und diese das oben genannte Makro ausführt, bekomme ich die Fehlermeldung "Diese Datei ist bereits von XXX geöffnet" und das obwohl ich die Datei lt. Makro schreibgeschützt öffnen wollte.
Ich möchte einfach nicht, dass diese Meldung erscheint (zumal sie ja meiner Meinung nach in diesem Fall überflüssig ist).

Hat jemand eine Idee?

Gruß
Christian

  

Betrifft: AW: Excel-Datei schreibgeschütz öffnen -> funktioniert von: Daniel
Geschrieben am: 17.09.2014 12:13:02

Hi

es sollte zwar nicht notwendig sein, aber so unterdrückt man die Systemrückfragen.
Es wird die automatsich voreingestellte Option verwendet:

Application.DisplayAlerts = false
Workbooks.Open Dateiname, ReadOnly:=True
Application.DisplayAlerts = true

Gruß Daniel


  

Betrifft: AW: Excel-Datei schreibgeschütz öffnen -> funktioniert von: Schmitty
Geschrieben am: 17.09.2014 12:56:15

Hallo Daniel,

danke (zum x-ten Mal) für deine Hilfe.

Ich weiß auch nicht mehr, warum das mit dem Schreibschutz nicht funktionieren will. Auch dein Lösungsvorschlag führt nicht zum erhofften Ziel, die Meldung erscheint weiterhin.

Nur wenn ich die Datei auf dem Server freigebe, kommt naturgemäß die Fehlermeldung nicht, dass wäre aber erst meine aller letzte Option.

Hier mal der komplette Code der beim Start meiner lokalen Datei ausgeführt wird:

' Beim öffnen der Datei die Formatierungen aktualisieren
Sub Workbook_Open()
' Blattschutz für alle Arbeitsmappen deaktivieren
    Dim Blatt As Worksheet
    For Each Blatt In Worksheets
    Blatt.Unprotect ""
    Next Blatt
    
' Format aus der Kunden-Datenbank holen
    ' Datei "Adressen.xlsm" öffnen
    Workbooks.Open Filename:="Z:\kartei\Adressen.xlsm", ReadOnly:=True
    'Schmitz GmbH
    Workbooks("Adressen.xlsm").Worksheets("Schmitz GmbH").Rows("6:2500").Copy
    Workbooks("Recherche.xlsm").Sheets("Schmitz GmbH").Rows("6:2500").PasteSpecial Paste:= _
xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Application.Goto Workbooks("Recherche.xlsm").Sheets("Schmitz GmbH").Range("B4")
    ' Schmitz EK
    Workbooks("Adressen.xlsm").Worksheets("Schmitz EK").Rows("6:170").Copy
    Workbooks("Recherche.xlsm").Sheets("Schmitz EK").Rows("6:170").PasteSpecial Paste:= _
xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Application.Goto Workbooks("Recherche.xlsm").Sheets("Schmitz EK").Range("B4")
    ' Raiffeisen Heizöl
    Workbooks("Adressen.xlsm").Worksheets("Raiffeisen Heizöl").Rows("6:192").Copy
    Workbooks("Recherche.xlsm").Sheets("Raiffeisen Heizöl").Rows("6:192").PasteSpecial Paste:= _
xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Application.Goto Workbooks("Recherche.xlsm").Sheets("Raiffeisen Heizöl").Range("F4")
    ' Raiffeisen Diesel
    Workbooks("Adressen.xlsm").Worksheets("Raiffeisen Diesel").Rows("6:114").Copy
    Workbooks("Recherche.xlsm").Sheets("Raiffeisen Diesel").Rows("6:114").PasteSpecial Paste:= _
xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Application.Goto Workbooks("Recherche.xlsm").Sheets("Raiffeisen Diesel").Range("F4")
    ' Datei "Adressen.xlsm" schließen und NICHT speichern
    Workbooks("Adressen.xlsm").Close savechanges:=False
' Die Startseite wird festgelegt
    Sheets("Start").Select
    ActiveWindow.ScrollColumn = 1
    ActiveWindow.ScrollRow = 1
    
' Blattschutz für alle Arbeitsmappen aktivieren
    For Each Blatt In Worksheets
    Blatt.Protect ""
    Next Blatt
   
End Sub
Gruß
Christian


 

Beiträge aus den Excel-Beispielen zum Thema "Excel-Datei schreibgeschütz öffnen -> funktioniert"