Clever-Excel-Forum

Normale Version: ein weiterer Fehler 1004 - aber immer nur mal wieder, je nach Laune
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen
Ich habe nun schon viel recherchiert um diesem sogenannten Laufzeitfehler 1004 nachzukommen, aber ich kann es leider nicht nachvollziehen, was mir mein Programm sagen möchte.
How to reproduce:
Ich erstellte ein Excel Makro zum benennen der Datei aus bestimmten Zellen. Da ich gerade bei bin eine groe Datenbank anzulegen, brauche ich standardisierte Dateibezeichnungen.
Das hat bis letzte Woche auch geklappt: Semester_Kurs_Fach_Dozent_Thema.xlsx
Letzte Woche fügte ich in diese Variablen noch die Anzahl der Kurse ein xxsieheobenxx_22UE.xslx

Das heist ich habe im Makro nichts geändert ausser einer Zelle hinzugefügt.
Nun kommt leider die Fehlermeldung: Laufzeitfehler 1004 - Diese Erweiterung kann nicht mit dem im ausgewählten Dateityp verwendet werden. Ändern Sie die Dateierweiterung im Textfeld Dateiname oder wählen Sie einen anderen Dateityp aus indem Sie die Auswahl auf Speichern unter ändern.

Komischerweise funktioniert das Script manchmal und manchmal nicht.
Öffne ich das Excel Formular neu, gebe nur die Felder ein, speichere, dann funktioniert es in der Regel. bleibe ich weiter in der Datei und bearbeite Sie zunächst weiter, kann er nicht speichern, und es kommt die Fehlermeldung.
Und das ist der Grund wo ich verständnismäßig leider aussteige.
Könnt ihr mir vielleicht helfen.

Ich sende mal das Script mit rein...
Sub SVPspeicher()



Dim Datei As String
Dim Verzeichnis As String
Dim SaveDummy As Variant

Verzeichnis = "L:\_Datenaustausch\Infos von der Schulleitung der Fachschule\Stoffverteilungspläne\" 'Verzeichnis-Vorschlag
Datei = Range("B2") & "_" & Range("B1") & "_" & Range("B3") & "_" & Range("B4") & "_" & Range("B5") & "UE" & "_" & Range("C6") & ".xlsx" 'Datei-Vorschlag
SaveDummy = SpeichernUnter(Verzeichnis & Datei)
If SaveDummy <> False Then ActiveWorkbook.SaveAs SaveDummy 'Es wurde im Dialog auf Speichern gedrückt

End Sub



Function SpeichernUnter(VorgabeName As String) As Variant

SpeichernUnter = Application.GetSaveAsFilename(InitialFileName:=VorgabeName, Filefilter:="Excel Dateien (*.xlsx),*.xls*", _
FilterIndex:=1, Title:="SVPspeicher", ButtonText:="SVPspeichern")

End Function



Ich bin auch Anfänger, ich habe mir dieses aus zweoi Ideen im Netz zusammengebastelt, auch hier bin ich offen für Anregungen.

Viele Grüße
Hi,

bist Du im VBA-Editor mit F8 in Einzelschritten durch?
Bei welchem Prozedurtyp entsteht der Fehler:
a) Sub
b) Funktion
Hm, es macht leider keinen Unterschied ob ich das mit F8 oder gesamt ausführe. Der Fehler scheint bei dem If SaveDummy zu entstehen.
ICh hab mal den screenshot drangehangen
Hallo,

was steht in der neu hinzugefügten Zelle wenn die Fehlermeldung auftaucht?

PS: Ich sehe keinen Screenshot.
1) Du hast Makros willst aber als *.xlsx
2) Die Methode ActiveWorkbook.SaveAs() braucht ebenfalls den Dateityp



zu 1)
Schau dir die FileFormat-Auflistung an:
h t t p s://docs.microsoft.com/de-de/office/vba/api/excel.xlfileformat

zu2)
Schau dir mal die Erwartung der Methode an:

Nachfolgend der Code:
Code:
Sub SVPspeicher()

Dim Datei As String
Dim Verzeichnis As String
Dim SaveDummy As Variant
Verzeichnis = "L:\_Datenaustausch\Infos von der Schulleitung der Fachschule\Stoffverteilungspl?ne\" 'Verzeichnis-Vorschlag
Datei = Range("B2") & "_" & Range("B1") & "_" & Range("B3") & "_" & Range("B4") & "_" & Range("B5") & "UE" & "_" & Range("C6") & ".xlsm" 'Datei-Vorschlag
SaveDummy = SpeichernUnter(Verzeichnis & Datei)
If SaveDummy <> False Then ActiveWorkbook.SaveAs SaveDummy, xlOpenXMLWorkbookMacroEnabled 'Es wurde im Dialog auf Speichern gedr?ckt
End Sub

Function SpeichernUnter(VorgabeName As String) As Variant
SpeichernUnter = Application.GetSaveAsFilename(InitialFileName:=VorgabeName, Filefilter:="Excel Dateien mit Makros(*.xlsm),*.xlsm", _
FilterIndex:=1, Title:="SVPspeicher", ButtonText:="SVPspeichern")
End Function
Zu 1
ICh brauche für alle Kollegen bloß ein Formular mit dem Makro. Die Enddatei die dann ausgespuckt wird kan eine normale xlsx sein, da danach kein Makro mehrverwendet wird.

Zu 2
Ich habe das mal wie im Beispiel eingefügt, es ändert sich aber nichts

So hab den Screenshot diesmal auch mit hochgeladen :)

In den Feldern die rot markiert sind, tragen die Kollegen die Daten ein, diese werden wie im script abgerufen und bilden die Dateibezeichnung. Vorher ging es problemlos, seit ich die B5 und die "UE" eingefügt habe kommt der Fehler.
Hallo,

wenn in der Zelle C6 solche Zeichen \ : . und ähnliche verwendet werden, kann es zum Fehler kommen. Um das auszuschließen, ist dein Beispiel nicht aussagekräftig genug.
Ich habe bei allen Beispielen jetzt extra gar keine Sonderzeichen mehr verwendet
Interessant ist auch, wenn ich auf speichern unter gehe und das als xlsm speichere nimmt er das Makro mit und in der Datei funktioniert es dann ohne den Fehler
Zitat:Zu 2

Ich habe das mal wie im Beispiel eingefügt, es ändert sich aber nichts

Das Laufwerk L: ist gemappt, der Pfad in seiner angegebenen tiefe tatsächlich vorhanden und Du hast sowohl Freigabe als auch NTFS-Rechte um darauf zu speichern?

Lad doch mal Deine Mappe hoch (anonymisiert), dann lässt sich reinschauen ob auch alles ordentlich hinterlegt wurde ;)

Zitat:Interessant ist auch, wenn ich auf speichern unter gehe und das als xlsm speichere nimmt er das Makro mit und in der Datei funktioniert es dann ohne den Fehler
und 
Zitat:ICh brauche für alle Kollegen bloß ein Formular mit dem Makro. Die Enddatei die dann ausgespuckt wird kann eine normale xlsx sein, da danach kein Makro mehrverwendet wird.
Sind nützliche Infos.
Der Code muss angepasst werden.
zu 2
Ja das Laufwerk steht mir zur Verfügung, es hat ja auch vorher geklappt
Die Mappe lade ich mal im Anhang mit
Seiten: 1 2