Clever-Excel-Forum

Normale Version: speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag,

würde gerne ein Word Dokument automatisch mit Datum und Uhrzeit speichern.

Habe das bei meinem EXCEL Dokument durch ein VBA-Programm hinbekommen, welches ich im Internet gefunden habe.
Folgendes Programm verwende ich hier:

Code:
Sub xlsTest()
 'Datei und Pfad sind Wörter, die in VBA
 'Verwendung finden und deshalb verboten
 'sind
 Dim sDatei As String, sZielDatei As String
 Dim Pos
 'Dim sPfad As String
 'hier fehlt der Backslash (\)
 'sPfad = ThisWorkbook.Path
 sPfad = ActiveWorkbook.Path & "\"
 sDatei = ActiveWorkbook.Name
 '
 'in Dateinamen sind z.B. Doppelpunkte
 'nicht erlaubt
 'Dateinamen extrahieren
 Pos = InStrRev(sDatei, ".", , vbTextCompare)
 sZielDatei = sPfad & Mid(sDatei, 1, Pos - 1)
 sZielDatei = sZielDatei _
   & "_" & Format(Date, "yyyyMMdd_") _
   & Format(Time, "hh-mm")
 'MsgBox sZielDatei
 '
 ActiveWorkbook.SaveAs Filename:=sZielDatei & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Kann mir jemand sagen, warum das nicht beim WORD Dokument funktioniert?
Was müßte ich ändern?
Fehlermeldung: Laufzeitfehler 424
Objekt erforderlich


Gruss Markus
Hi Markus,

das ist das Problem, wenn jemand einfach Codes kopiert, nicht versteht und in anderem Zusammenhang verwenden will.

Grob gesagt, die Syntax in Excel ist eine andere als in Word oder anderen Produkten des Officepakets. Ich habe mal das Codegerippe angepaßt an Wordsyntax.


Code:
Sub docTest()
'Datei und Pfad sind Wörter, die in VBA
'Verwendung finden und deshalb verboten
'sind
Dim sDatei As String, sZielDatei As String, sPfad As String
Dim Pos
'Dim sPfad As String
'hier fehlt der Backslash (\)
'sPfad = ThisWorkbook.Path
sPfad = ActiveDocument.Path & "\"
sDatei = ActiveDocument.Name
'
'in Dateinamen sind z.B. Doppelpunkte
'nicht erlaubt
'Dateinamen extrahieren
Pos = InStrRev(sDatei, ".", , vbTextCompare)
sZielDatei = sPfad & Mid(sDatei, 1, Pos - 1)
sZielDatei = sZielDatei _
  & "_" & Format(Date, "yyyyMMdd_") _
  & Format(Time, "hh-mm")
'MsgBox sZielDatei
'


ActiveDocument.SaveAs2 FileName:=sZielDatei & ".docm", FileFormat:= _
        wdFormatXMLDocumentMacroEnabled, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False, CompatibilityMode:=15
End Sub
Hallo Michael, stimmt, ich hatte keine Ahnung dass man hier eine andere Sprache anwenden muß. Um so mehr schätze ich die Leute, die in der Lage sind, solche Programme zu schreiben!
Danke für deine Mühen! Klappt super auf den ersten Blick! Werde ich mir morgen noch mal ganz in Ruhe anschauen!
Gruss Markus
Hi Markus,
wenn du mehr als googeln und copy & paste betreiben willst, dann versuche solche Lösungen zu verstehen. Frag immer nach, wenn dir da etwas unklar ist und versuche, dein Wissen in VBA zu verbessern.
Generell ist jede Syntax in den verschiedenen Officeprodukten unterschiedlich. Man kann also keinen Code einfach an anderer Stelle verwenden.
Testemal denCode und bei Problemen frag nach.
Hi Markus,

(21.08.2017, 21:50)Maximus schrieb: [ -> ]ich hatte keine Ahnung dass man hier eine andere Sprache anwenden muß.

nicht die Sprache ist eine andere, sondern manche Bezeichnungen (wioe z.B. Excel: Workbook <> Word: Document) und die Befehlssyntax und benötigte Parameter.

Wenn Du Dir beide Makros in einem Word-Dokument gegenüberstellst, dann siehst Du genau, was (und daß gar nicht so viel) anders ist. Die Zeilen mit ' sind Kommentare und werden nicht ausgeführt.
[attachment=12908]