Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler 1004

Laufzeitfehler 1004
06.10.2017 08:40:07
Manuela
Hallo zusammen,
ich habe einen Laufzeitfehler 1004 bei dem ich nicht klar bin wieso das nicht geht.
Laufzeitfehler1004:
Diese Erweiterung kann nicht mit dem ausgewählten Dateityp verwendet werden.
Ändern Sie die Dateierweiterung im Textfeld "Dateiname", oder wählen Sie einen anderen Dateityp aus, indem Sie die Auswahl unter "Spreichern unter" ändern.

Die Datei ist eine XLTM, damit die Datei nicht überspeichert wird. Versteh aber nicht wieso ich nicht dann als XLSM speichern darf.
Die Datei als XLSM funktioniert tadellos.
Gruß
Manuela
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004
06.10.2017 08:51:17
Nepumuk
Hallo Manuela,
zeig doch mal die Prozedur in der der Fehler ausgelöst wird.
Gruß
Nepumuk
AW: Laufzeitfehler 1004
06.10.2017 09:07:34
Manuela
Mein Fehler SORRY,
Hier der Code:
Public Sub SaveAs()
On Error GoTo Fehler
Dim strVerzeichnis As String
Dim strDateiname As String
strVerzeichnis = "F:\"
strDateiname = Application.GetSaveAsFilename(InitialFileName:=strVerzeichnis & _
Format(Date, "YYYY-MM.DD_") & Range("E14") & ".xlsm", _
FileFilter:="Microsoft Excel-Arbeitsmappe (*.xlsm), *.xlsm")  'aus dem Range AB5 wird  _
der Name gebildet
Select Case strDateiname
Case False
Exit Sub
Case Else
ThisWorkbook.SaveAs Filename:=strDateiname
End Select
Exit Sub
Fehler:
MsgBox "Fehler !!!" & vbNewLine & "Es wurde keine Produkt Änderungsnummer  _
eingetragen.", vbQuestion, "Achtung!"
End Sub

Anzeige
AW: Laufzeitfehler 1004
06.10.2017 09:19:47
Nepumuk
Hallo Manuela,
teste mal:
Public Sub FileSaveAs()
    On Error GoTo Fehler
    
    Dim strVerzeichnis As String
    Dim strDateiname As String
    
    strVerzeichnis = "F:\"
    
    'aus dem Range AB5 wird der Name gebildet
    strDateiname = Application.GetSaveAsFilename(InitialFileName:=strVerzeichnis & _
        Format(Date, "YYYY-MM.DD_") & Range("E14").Value & ".xlsm", _
        FileFilter:="Microsoft Excel-Arbeitsmappe (*.xlsm), *.xlsm")
    
    Select Case strDateiname
        Case False
            Exit Sub
        Case Else
            ThisWorkbook.SaveAs Filename:=strDateiname, _
                FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Select
    
    Exit Sub
    Fehler:
    
    MsgBox "Fehler !!!" & vbLf & "Es wurde keine Produkt " & _
        "Änderungsnummer eingetragen.", vbQuestion, "Achtung!"
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 1004
06.10.2017 09:28:54
Manuela
Funktioniert, vielen Dank.
Könntest du mir eine kurze erklärung dazu geben ?
Danke dir nochmal.
Gruß
AW: Laufzeitfehler 1004
06.10.2017 09:37:20
Nepumuk
Hallo Manuela,
Seit Excel 2007 gibt es verschiedene Dateiformate für Excelmappen (.xlsx, .xlsm, .xlsb) ohne Angabe der Endung wird die Mappe so gespeichert wie es in den Optionen angegeben ist. Aber nur dann ohne Fehlermeldung wenn die Endung fehlt oder richtig ist. Wenn du aber in den Optionen z.B. "Excel Arbeitsmappe (*.xlsx)" angegeben hast und versuchst eine Mappe mit der Endung .xlsm zu speichen kommt die Fehlermeldung. Um die zu umgehen gebe ich in der SaveAs-Methode das Dateiformat (xlOpenXMLWorkbookMacroEnabled = .xlsm) mit an. Das solltest du immer machen!!!
Jetzt klarer?
Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 1004 in Excel VBA beheben


Schritt-für-Schritt-Anleitung

  1. Fehlerquelle identifizieren: Der Laufzeitfehler 1004 tritt häufig auf, wenn du versuchst, eine Datei mit einer nicht unterstützten Dateiendung zu speichern. Achte darauf, dass du das richtige Dateiformat verwendest.

  2. VBA-Code anpassen: Überprüfe deinen VBA-Code. Hier ist ein Beispiel, wie der Code aussehen könnte:

    Public Sub SaveAs()
       On Error GoTo Fehler
       Dim strVerzeichnis As String
       Dim strDateiname As String
       strVerzeichnis = "F:\"
       strDateiname = Application.GetSaveAsFilename(InitialFileName:=strVerzeichnis & _
       Format(Date, "YYYY-MM.DD_") & Range("E14") & ".xlsm", _
       FileFilter:="Microsoft Excel-Arbeitsmappe (*.xlsm), *.xlsm")
    
       Select Case strDateiname
           Case False
               Exit Sub
           Case Else
               ThisWorkbook.SaveAs Filename:=strDateiname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
       End Select
       Exit Sub
    Fehler:
       MsgBox "Fehler !!!" & vbNewLine & "Es wurde keine Produkt Änderungsnummer eingetragen.", vbQuestion, "Achtung!"
    End Sub
  3. Dateiformat angeben: Achte darauf, das FileFormat in der SaveAs-Methode anzugeben, um den Fehler 1004 zu vermeiden.


Häufige Fehler und Lösungen

  • Fehler 1004: Diese Erweiterung kann nicht mit dem ausgewählten Dateityp verwendet werden: Dieser Fehler tritt auf, wenn das angegebene Dateiformat nicht mit der Dateiendung übereinstimmt. Um diesen Fehler zu beheben, wähle das passende Dateiformat in der SaveAs-Methode.

  • Falscher Dateipfad: Stelle sicher, dass der angegebene Dateipfad existiert und du die erforderlichen Berechtigungen hast, um dort zu speichern.


Alternative Methoden

  • Manuelles Speichern: Statt den VBA-Code zu verwenden, kannst du die Datei auch manuell speichern und die richtige Dateiendung auswählen.

  • Speichern unter: Nutze die „Speichern unter“-Funktion in Excel, um die Datei in einem unterstützten Format zu speichern.


Praktische Beispiele

Hier ist ein Beispiel, wie du den SaveAs-Befehl korrekt in deinem Code verwenden kannst:

Public Sub BeispielSaveAs()
    Dim strDateiname As String
    strDateiname = Application.GetSaveAsFilename(FileFilter:="Excel-Dateien (*.xlsm), *.xlsm")

    If strDateiname <> False Then
        ThisWorkbook.SaveAs strDateiname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Else
        MsgBox "Speichern abgebrochen."
    End If
End Sub

In diesem Beispiel wird der Benutzer aufgefordert, einen Dateinamen anzugeben, und der Fehler 1004 sollte vermieden werden.


Tipps für Profis

  • Fehlerbehandlung implementieren: Verwende On Error GoTo, um Fehler zu erkennen und entsprechend darauf zu reagieren.

  • Code modularisieren: Teile deinen Code in kleinere, wiederverwendbare Funktionen auf, um die Wartbarkeit zu erhöhen.

  • Regelmäßige Backups: Erstelle regelmäßige Backups deiner Excel-Dateien, insbesondere wenn du mit VBA arbeitest.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler 1004 in Excel VBA?
Der Laufzeitfehler 1004 tritt auf, wenn ein Befehl in VBA nicht erfolgreich ausgeführt werden kann, oft aufgrund von falschen Dateiformaten oder ungültigen Dateipfaden.

2. Wie kann ich den Laufzeitfehler 1004 vermeiden?
Stelle sicher, dass du das richtige Dateiformat angibst und überprüfe die Dateipfade. Verwende immer die FileFormat-Option in der SaveAs-Methode.

3. Was bedeutet die Fehlermeldung „Diese Erweiterung kann nicht mit dem ausgewählten Dateityp verwendet werden“?
Diese Meldung erscheint, wenn du versuchst, eine Datei mit einer falschen Dateiendung zu speichern. Achte darauf, dass die Endung und das Format übereinstimmen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige