PDA

Vollständige Version anzeigen : Application.DisplayAlerts/False/True funktioniert nicht


mis
17.09.2016, 21:17
Liebe Community!

Ich starte aus einer geöffneten .xlsm Datei ein Makro, das eine neue Excel Datei erzeugt und das von der Quelldatei in die neue Datei einen Kopiervorgang durchführt.
Die neue Datei wird als .xlsx gespeichert.

Wenn nun die neue .xlsx bereits besteht und nochmals drübergespeichert wird, erfolgen immer 2 Meldungen:

TestDatei-.xlsx ist bereits vorhanden.
Möchten Sie sie ersetzen? Ja, Nein
danach
Eine Datei mit dem Namen 'C:Users...gesamter Pfadist.xlsx ' ist bereits an diesem Speicherort vorhanden. Soll sie ersetzt werden? Ja, Nein, Abbrechen

Mit 2x Ja drücken ist die Datei dann ersetzt (warum eigentlich gleich 2x?).
Im VBA-Editor mit F8 lässt sich das nicht nachvollziehen.

Ist es möglich, ohne nachzufragen, zwingend drüberzuspeichern?
Application.DisplayAlerts/False/True funktioniert nicht, wo immer ich es auch platziere.
Falls neue Variablen zu deklarieren sind, bitte ich, diese in den Code einzuarbeiten.
Für Codekorrekturen oder Optimierungen bin ich natürlich auch sehr dankbar.

Hier mein soweit funktionierender Code:

Option Explicit
Sub NeueExcelDateiErzeugen()
Dim wkbNeu As Workbook 'neue Excel Datei erzeugen
Dim wksNeu As Worksheet 'Tabellenblatt der neuer Excel Datei
Dim wksQuelle As Worksheet 'Tabellenblatt der ursprünglichen Excel Datei
Dim pfad As String 'Pfad festlegen
Dim dateiname As String 'Dateinamen festlegen
Dim dialog As Object 'Dialog Speichern unter

Set wksQuelle = ThisWorkbook.Worksheets(1) 'von der Ursprungsdatei wird in die neue excel Datei kopiert
Set wkbNeu = Workbooks.Add 'neue Excel Datei erzeugen
pfad = "C:\Users\mp\Documents\00 Neu_Susa\SUSA Nachfolgeprogramm\Liste Susa-Nachfolge versenden\"
dateiname = "TestDatei-" & Format(Date, "yyyy.mm.dd")

Set dialog = Application.FileDialog(msoFileDialogSaveAs)

With dialog
.FilterIndex = 1
.InitialFileName = pfad & dateiname
If .Show = 0 Then
wkbNeu.Close
Exit Sub
End If
End With
wkbNeu.Save
If dialog <> False Then dialog.Execute

'Hier erfolgt dann der Kopiervorgang von wksQuelle nach wkbNeu

End Sub

Vielen Dank und liebe Grüße
Manfred

Scorefun
17.09.2016, 22:47
prüfe vorher mit Dir(PfadDatei) und lösche gegebenenfalls mit Kill PfadDatei

mis
17.09.2016, 23:48
Danke Scorefun,
ich weiß allerdings noch nicht, wie und vor allem wo ich das im Codeverlauf einfügen könnte.
LG Manfred

mis
18.09.2016, 00:33
Pfad prüfen hat funktioniert.
Danke für den Hinweis.

LG Manfred