Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Laufzeitfehler 1004

VBA: Laufzeitfehler 1004
15.10.2017 10:47:40
Fritz
Hallo Forumsbesucher,
vor einigen Tagen hat mir Case in diesem Forum nachfolgendes Makro geschrieben, mit dem ich das Tabellenblatt "Daten" in einer neuen Arbeitsmappe unter dem Dateinamen ergänzt durch das aktuelle Datum im gleichen Ordner sichere.
Nun ergibt sich ein Problem, wenn das Makro ausgeführt wird und für diesen Tag bereits eine Sicherung erstellt wurde. Dann erscheint der Hinweis, dass eine Datei mit diesem Namen an diesem Speicherort bereits vorhanden ist.
Wenn ich nun auf die Frage "Soll sie ersetzt werden?" mit Nein reagiere, erscheint die Fehlermeldung "Laufzeitfehler 1004".
Wie kann ich diese Fehlermeldung vermeiden?
Für eure Unterstützung besten Dank im Voraus.
mfg
Fritz
Hier das Makro:
Option Explicit

Public Sub Main()
Application.ScreenUpdating = False
Worksheets("Daten").Copy
With ActiveSheet.UsedRange
.Value = .Value
End With
With ActiveWorkbook
.SaveAs ThisWorkbook.Path & "\" & Left(ThisWorkbook.Name, _
(InStrRev(ThisWorkbook.Name, ".") - 1)) & Format(Now, "_DD_MM_YYYY") & ".xlsx", 51
.Close False
End With
Application.ScreenUpdating = True
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format(Now, "_DD_MM_YYYY_hhnnss")
15.10.2017 11:10:41
Gerd
Gruß Gerd
AW: Format(Now, "_DD_MM_YYYY_hhnnss")
15.10.2017 11:25:08
Fritz
Hallo Gerd,
auch eine Möglichkeit.
Auf jeden Fall eine Variante, die eine entscheidende Verbesserung darstellt.
Vielen Dank
Gruß
Fritz
AW: VBA: Laufzeitfehler 1004
15.10.2017 11:26:21
Nepumuk
Hallo Fritz,
wenn du selbst entscheiden willst ob die vorhandene Datei überschrieben werden soll oder nicht, dann so:
Option Explicit

Public Sub Main()
    Dim strFilename As String
    Application.ScreenUpdating = False
    Worksheets("Daten").Copy
    With ActiveSheet.UsedRange
        .Value = .Value
    End With
    strFilename = ThisWorkbook.Path & "\" & Left(ThisWorkbook.Name, _
        (InStrRev(ThisWorkbook.Name, ".") - 1)) & Format(Now, "_DD_MM_YYYY") & ".xlsx"
    If Dir$(strFilename) <> vbNullString Then
        If MsgBox("Eine Datei mit dem Namen existiert bereits." & vbLf & vbLf & _
            "Überschreiben?", vbQuestion Or vbYesNo, "Abfrage") = vbYes Then
            Application.DisplayAlerts = False
            Call SaveFile(strFilename)
            Application.DisplayAlerts = True
        Else
            Call ActiveWorkbook.Close(Savechanges:=False)
        End If
    Else
        Call SaveFile(strFilename)
    End If
    Application.ScreenUpdating = True
End Sub

Public Sub SaveFile(ByVal pvstrFileName As String)
    With ActiveWorkbook
        Call .SaveAs(Filename:=pvstrFileName, FileFormat:=xlOpenXMLWorkbook)
        Call .Close(Savechanges:=False)
    End With
End Sub

Die andere Möglichkeit kommt von Gerd, einfach die Uhrzeit in den Dateinamen mit übernehmen.
Gruß
Nepumuk
Anzeige
AW: VBA: Laufzeitfehler 1004
15.10.2017 17:27:55
Fritz
Hallo Nepumuk,
bitte um Entschuldigung, weil ich erst jetzt antworte. Habe Deine Antwort eben erst gelesen.
Ganz vielen Dank für deine Unterstützung. Ich würde diese Variante bevorzugen, aber beim Ausführen des Makros erscheint eine Fehlermeldung mit dem Hinweis auf "Syntaxfehler".
Möglicherweise ist im Code ein Tippfehler enthalten. Es werden mehrere Zeilen im Code in roter Schriftfarbe angezeigt, u.a. bereits die Zeile mit
Dim strFilename As String
Viele Grüße
Fritz
AW: VBA: Laufzeitfehler 1004
15.10.2017 17:44:10
Nepumuk
Hallo Fritz,
hast du irgendein Programm laufen welches das Clipboard "überwacht"? Denn bei allen anderen gab's bisher noch keine Probleme. Anscheinend werden bei dir zusätzliche Zeilenumbrüche eingefügt. Kopier den Code mal erst nach Word und dann in den VBA-Editor.
Gruß
Nepumuk
Anzeige
AW: VBA: Laufzeitfehler 1004
15.10.2017 17:54:15
Fritz
Hallo Nepumuk,
Deine Vermutung war richtig. Den Code zunächst nach Word kopiert und dann in den VBA Editor eingefügt und die "roten Stellen" im Code waren weg. Das Makro funktioniert nun genau so, wie ich das erhofft hatte. Super.
Nochmals vielen Dank.
Viele Grüße
Fritz

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige