Thema Datum  Von Nutzer Rating
Antwort
11.09.2015 12:44:38 Enrico
NotSolved
11.09.2015 17:22:12 BigBen
NotSolved
11.09.2015 17:34:39 Gast87410
NotSolved
14.09.2015 11:11:22 Gast85128
NotSolved
14.09.2015 11:48:50 BigBen
NotSolved
14.09.2015 19:14:53 BigBen
NotSolved
Rot Datei vor überschreiben schützen
24.09.2015 11:13:43 Gast99094
NotSolved

Ansicht des Beitrags:
Von:
Gast99094
Datum:
24.09.2015 11:13:43
Views:
1745
Rating: Antwort:
  Ja
Thema:
Datei vor überschreiben schützen

Hallo,

ich habe es nun mit der application.GetSaveAsFilename die ich hier lernen konnte viel einfacher (fast) gelöst. Die Originaldatei soll einfach bleiben wo sie ist. Wenn ein Benutzer versucht zu überschreiben öffnet sich der SaveAs Dialog fordert auf wo anders zu speichen und gibt auch einen anderen Ordner und Namens Vorschlag.

Es klappt ganz gut, bis auf eine Kleinigkeit, und zwar kann der Benutzer im SaveAs Dialog den Namen und Pfad wieder zurück ändern und kann dann das Original üerschreiben. Wie schreibe ich es, dass bei der Frage ob man überschreiben möchte automatisch "NEIN" gewählt wird und stattdessen eine MsgBox("Überschreiben nicht möglich") kommt? Display Alerts aus und dann?

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If ActiveWorkbook.Worksheets("Daten").Range("D30") = "XXX" Then
If ActiveWorkbook.Name = "XXX.xlsm" And ActiveWorkbook.Path = "G:\YYY\ZZZ" Then

Cancel = True
Call Speichern

End If
End If
End Sub

Sub Speichern()

Dim Dateiname As String Dim strFilePathNeu As String Dim varResult As Variant

Dateiname = "XXX_" & Environ("Username") & "_" & Date strFilePathNeu = ActiveWorkbook.Path & Application.PathSeparator & "falsch gespeichert" & Application.PathSeparator & Dateiname

MsgBox (Application.UserName & "! Das Original kann nicht überschrieben werden!")

varResult = Application.GetSaveAsFilename(InitialFileName:=strFilePathNeu, Filefilter:="Excel Arbeitsmappe mit Makros (*.xlsm), *.xlsm", _ FilterIndex:=IIf(ActiveWorkbook.HasVBProject, 1, 1))

If varResult <> False Then

ActiveWorkbook.Worksheets("Daten").Range("D30").Value = "" ActiveWorkbook.SaveAs varResult

End If

End Sub

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
11.09.2015 12:44:38 Enrico
NotSolved
11.09.2015 17:22:12 BigBen
NotSolved
11.09.2015 17:34:39 Gast87410
NotSolved
14.09.2015 11:11:22 Gast85128
NotSolved
14.09.2015 11:48:50 BigBen
NotSolved
14.09.2015 19:14:53 BigBen
NotSolved
Rot Datei vor überschreiben schützen
24.09.2015 11:13:43 Gast99094
NotSolved