Rückfrage "Überschreiben" unterdrücken
#1
Hallo VBA-Freunde,

dank eurer Hilfe habe ich meinen Code jetzt am Laufen.

In diesem Code stört mich nur eine Kleinigkeit. Wenn ich eine schon vorhandene Datei ausgewählt habe
kommt die Dialogbox "... ist bereits vorhanden, möchten Sie sie ersetzen?"

Diese Dialogbox möchte ich weg haben. Mit
Application.DisplayAlerts = False
klappt das nicht.
Mein Ziel ist eigentlich nur über die Dialogbox "Speichern unter" dem User die Möglichkeit zu geben
einen neuen Speicherort und Namen zu ermöglichen und diesen nachher für weitere Verwendungen unter VBA
in 2 Zellen zu schreiben.

Gäbe es da noch einen anderen Weg?
Vielen Dank für eure Überlegungen.

Heinz



Code:
Sub saveas()

Application.DisplayAlerts = False
Sname = Application.Dialogs(xlDialogSaveAs).Show
Application.DisplayAlerts = True

If Sname = False Then
   strTxt = Worksheets("MsgBoxes").Range("B3").Value
   MsgBox strTxt, vbCritical
   Exit Sub
End If

Range("B8").Value = ThisWorkbook.Path
Range("C8").Value = ThisWorkbook.Name


End Sub
Es ist nicht genug, zu wissen. Man muss es auch anwenden.
Es ist nicht genug, zu wollen. Man muss es auch tun.
Top
#2
Hallo Heinz,

Du müsstest das Speichern und den Dialog trennen, z.B. so:
Code:
...
sname = Application.GetSaveAsFilename(InitialFileName:="NeueDatei", Filefilter:="Excel Dateien (*.xlsx),*.xlsx*")
Application.DisplayAlerts = False
ActiveWorkbook.saveas sname
Application.DisplayAlerts = True
...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Heinz Ulm
Top
#3
Hallo André,

vielen Dank für deinen Rat.

Ich habe das Problem mit vielem Knobeln und Tante Google jetzt so gelöst.

Die Trennung war die Lösung.

Danke.
Gruß Heinz


Code:
Sub saveas()

Application.DisplayAlerts = False
Sname = Application.Dialogs(xlDialogSaveAs).Show
Application.DisplayAlerts = True

If Sname = False Then
   strTxt = Worksheets("MsgBoxes").Range("B3").Value
   MsgBox strTxt, vbCritical
   Exit Sub
End If

Range("B8").Value = ThisWorkbook.Path
Range("C8").Value = ThisWorkbook.Name


End Sub
Es ist nicht genug, zu wissen. Man muss es auch anwenden.
Es ist nicht genug, zu wollen. Man muss es auch tun.
Top


Gehe zu:


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