Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1464to1468
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
Inhaltsverzeichnis

Datei ersetzen?-Meldung unterdrücken

Datei ersetzen?-Meldung unterdrücken
07.01.2016 13:49:51
Robin
Hallo,
ich möchte ein Workbook unter gleichem Namen abspeichern und dabei folgende Fehlermeldung unterdrücken und mit "Ja" beantworten:
"Eine Datei mit dem Namen '..xlsm' ist bereits an diesem Speicherort vorhanden. Soll sie ersetzt werden?"
Es geht um eine Schreibgeschützte Mappe, die von einigen Usern gleichzeitig geöffnet ist, wobei die einzige Möglichkeit der Änderung ein Makro ist, welches den Schutz aufhebt, die Datei unter identischem Namen überschreibt und sodann wieder (bis zum Schließen mit ThisWorkbook.Saved=True) Schreibgeschützt ist.
PS: Warum wird der Parameter "Filename" autovervollständigt, und "WriteResPassword" nicht einmal groß geschrieben, beziehungsweise durch STRG+Leer vervollständigt? Muss ich das Ganze in Klammern setzen, oder fehlt evtl. noch ein zugehöriger Parameter?
Liebe Grüße,
Robin
Sub ZelleAendern()
UserForm1.Show
ThisWorkbook.ChangeFileAccess Mode:=xlReadWrite
ThisWorkbook.SaveAs Filename:="pfad\..xlsm", writerespassword:="1"
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Datei ersetzen?-Meldung unterdrücken
07.01.2016 18:22:18
Nepumuk
Hallo,
das sollte funktionieren:
Sub ZelleAendern()
    UserForm1.Show
    With ThisWorkbook
        .ChangeFileAccess Mode:=xlReadWrite
        .Save
        .ChangeFileAccess Mode:=xlReadOnly
    End With
End Sub

Zu deinem PS: Filename ist auch eine Eigenschaft z.B. der Graphic-Klasse daher wird es richtig geschrieben. WriteResPassword ist "nur" ein Parameter und die werden grundsätzlich nicht richtig gestellt.
Gruß
Nepumuk

Anzeige
AW: Datei ersetzen?-Meldung unterdrücken
08.01.2016 07:13:24
Robin
Hallo Nepumuk,
das mit dem PS hört sich plausibel an, Danke!
Zu dem Code:
Genau so hatte ich es zuerst auch zu lösen versucht, das Problem ist allerdings, dass die Mappe dann beim nächsten Öffnen nicht mehr Schreibgeschützt ist, weshalb ich den Weg über .SaveAs gehen wollte. Händisch funktioniert das Ganze, bzw. auch wenn der User die richtige Antwort "Ja" auswählt. Da ich darauf allerdings nicht vertrauen möchte, hätte ich die Meldung lieber unterdrückt und automatisch mit "Ja" beantwortet. Gibt es dazu eine Möglichkeit?
Grüße,
Robin

AW: Datei ersetzen?-Meldung unterdrücken
08.01.2016 08:37:58
Nepumuk
Hallo Robin,
ich kann dir nicht ganz folgen, wo soll der User auf "Ja" klicken? Setzt du den Readonly-Zugriff nicht per Makro beim Öffnen der Mappe
Gruß
Nepumuk

Anzeige
AW: Datei ersetzen?-Meldung unterdrücken
08.01.2016 12:55:13
Robin
Hallo Nepumuk,
den Schreibschutz hatte ich lediglich per Hand vergeben unter Datei/Speichern unter/Tools/Allgemeine Optionen.
Wenn der User die Datei Schreibgeschützt öffnet, hat er nur die Möglichkeit die zugelassenen Änderungen zu speichern, indem er per Button eine Userform aufruft, welche die oben genannte Routine startet.
Sub AufbewahrungAendern()
UserForm1.Show
ThisWorkbook.ChangeFileAccess Mode:=xlReadWrite
ThisWorkbook.SaveAs Filename:="pfad\..xlsm", WriteResPassword:="1"
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub
Darauf folgt dann eine Meldung, die ich unterdrücken möchte:
"Eine Datei mit dem Namen '..xlsm' ist bereits an diesem Speicherort vorhanden. Soll sie ersetzt werden?" ->"Ja", "Nein", "Abbrechen"
Ich weiß, das ganze ist umständlich, hat aber bis auf diese Meldung funktioniert - die Feinheit wäre nun, diese Meldung zu unterdrücken und Excel automatisch mit "Ja" auf oben genannte Meldung zu antworten.
Beim Öffnen habe ich den Readonly Zugriff nicht gesetzt, da ich mich damit jetzt schon mehrmals aus der Datei ausgeschlossen habe (ich bekomme sie NUR noch schreibgeschützt auf):
[Diese Arbeitsmappe]
Private Sub Workbook_Open()
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub

[Modul]
Sub AufbewahrungAendern()
UserForm1.Show
ThisWorkbook.ChangeFileAccess Mode:=xlReadWrite
ThisWorkbook.Save
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub
1)Schreibgeschützt Öffnen => Schreibgeschützt
2)Passwort eingeben -> "Änderungen vor dem Wechseln des Dateistatus speichern?" -> "Ja" => Schreibgeschützt
3)Passwort eingeben -> "Änderungen vor dem Wechseln des Dateistatus speichern?" -> "Nein" => Schreibgeschützt
4) Schreibgeschützt Öffnen => Laufzeitfehler #1004 'Die Methode ChangeFileAccess' für das Objekt '_Workbook' ist fehlgeschlagen -> "Beenden", "Debuggen", "Hilfe"
Markiert ist die Zeile:

ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
Deshalb hatte ich auch diesen Lösungsansatz verworfen, aber vielleicht kannst du mir ja sagen, wo mein Fehler liegt.
Grüße,
Robin

Anzeige
AW: Datei ersetzen?-Meldung unterdrücken
08.01.2016 14:59:50
Nepumuk
Hallo,
versuch es mit:
Application.DisplayAlerts = False
nicht vergessen, nach dem Speichern wider auf True setzen.
Gruß
Nepumuk

AW: Datei ersetzen?-Meldung unterdrücken
11.01.2016 08:14:12
Robin
Hallo Nepumuk,
damit funktioniert es nun endlich. Vielen lieben Dank noch einmal für deine Hilfe!
Grüße,
Robin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige