|
Hallo nochmal,
genau das macht mein Code doch. Hast du ihn ausprobiert? Der Filedialog lässt es zu einen Pfad auszuwählen und gibt den eingegebenen Namen samt Pfad in eine Variable zurück. Ist dieser falsch, dann wird abgebrochen. Was willst du noch?
Ich lese heraus, dass du eventuell bereits einen Namen vorgeben willst? Dafür ist die InitalFilename-Eigenschaft da. Willst du darüber hinaus nach der Eingabe nochmals abfragen, ob wirklich unter dem neuen Namen im entsprechenden Pfad gespeichert werden soll? Das kann die MsgBox erledigen.
Hier ein etwas angepasster Code:
Public WithEvents objWord As Application
Private Sub objWord_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
Dim Filename As String, frage As VbMsgBoxResult
If SaveAsUI = True And Doc Is ThisDocument Then
Cancel = True
Dim SaveAsFileDlg As FileDialog
Set SaveAsFileDlg = Application.FileDialog(FileDialogType:=msoFileDialogSaveAs)
With SaveAsFileDlg
.InitialFileName = "Vorgabetext" & 123
If SaveAsFileDlg.Show = -1 Then Filename = SaveAsFileDlg.SelectedItems(1)
If Filename <> "" Then frage = MsgBox("Soll die Datei """ & Doc.Name & """ unter " & Filename & " gespeichert werden?", vbYesNo + vbQuestion)
If frage = vbYes Then Doc.SaveAs2 Filename
End With
'Dokument "speichern unter"
'MsgBox "speichern unter"
' Hier möchte ich wissen, welcher Name bereits eingegeben wurde.
Else
'Dokument "speichern"
MsgBox "Die Datei """ & Doc.Name & """ wurde gespeichert"
End If
End Sub
und im Modul ThisDocument:
Dim myApp As New appEvents '<-- Name des Klassenmoduls
Private Sub Document_Open()
Set myApp.objWord = Application
End Sub
Gruß Mr. K.
|