Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
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

Speichern ohne Dateiendung. Warum nur?

Speichern ohne Dateiendung. Warum nur?
chandler
Hallo,
nach langer Recherche habe ich mich entschlossen doch zu fragen.
Möchte gerne einzelne Tabelle/n speichern als Tabellenname mit aktuellem Datum.
Habe leider zwei Fragen:
1. Warum wird die Filename extension XLS respektive XLSM (Excel 2010) nicht angehängt?
2. Unter Excel 2010 bekomme ich zusätzlich folgende Meldeng:
" Die folgenden Features können in Arbeitsmappen ohne Makros nicht gespeichert werden
.VB Projekt
…. Wählen Sie dann einen Datentyp mit aktivierten Makros in der Liste 'Dateityp' aus…"
Hat das war damit zu tun, dass die Tabellen ein Makro als

Private Sub Worksheet_Activate() hat?
Sub Save_n() 'einzelne Tabellen speichern
Dim Tabelle
If MsgBox(prompt:="Möchten Sie die Tabelle speichern?", Buttons:=vbYesNo + vbQuestion) _
= vbNo Then Exit Sub
ActiveSheet.Copy
Tabelle = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & ActiveSheet.Name & Format(Now, _
" DD.MM.YYYY"), "Microsoft Excel (*.XLS),*.XLS")
'Excel 2010
'Tabelle = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & ActiveSheet.Name & Format( _
Now, " DD.MM.YYYY"), "Microsoft Excel (*.XLSM),*.XLSM")
If Tabelle  False Then
On Error Resume Next
ActiveWorkbook.SaveAs Filename:=Tabelle
If Err.Number > 0 Then MsgBox "Tabelle wurde nicht gespeichert!"
On Error GoTo 0
End If
ERRHANDLER:
ActiveWorkbook.Close SaveChanges:=False
If Err.Number > 0 Then MsgBox Err.Description, , "Fehler Nr. " & Err.Number
End Sub

Hat jemand eine Idee warum die Dateinamenserweiterung nicht angehängt wird?
Was sind das für Features die ohne Makros nicht gespeichert werden können?
Vorab vielen Dank. Grüße chandler
AW: Speichern ohne Dateiendung. Warum nur?
06.01.2012 08:53:56
selli
hallo chandler,
bin zwar kein experte deiner excelversion, denke aber, dass es damit zu tun hat:
du kopierst ja nur die tabelle (ohne makros) und willst diese speichern.
das format xlsm bezeichnet ja aber exceldateien die makros enthalten.
die für dich passende endung wäre demzufolge xlsx.
ist aber nur so ins blaue geraten. lasse die frage deshalb noch offen.
gruß
selli
AW: Speichern ohne Dateiendung. Warum nur?
06.01.2012 09:01:01
chandler
Hallo selli,
vielen Dank für den Tipp.
Leider ist die 1. Frage damit nicht gelöst, die Filename extension XLS wird nicht angehängt unter Excel 2003.
Und das ist mein Problem.
Grüße chandler
Anzeige
AW: Speichern ohne Dateiendung. Warum nur?
06.01.2012 11:03:29
mumpel
Hallo!
Hier mal etwas kürzer. In Excel 2003 wird als XLS gespeichert, in Excel 2007/2010 als XLSX
Gruß, René
Korrektur: Fehler in Zeile 9
06.01.2012 11:06:01
mumpel
Kleiner Fehler in Zeile 9. Muss natürlich heissen: If Tabelle = "Falsch" Then Exit Subcolor>
AW: Speichern ohne Dateiendung. Warum nur?
06.01.2012 09:01:37
marcl
Hallo chandler,
versuch mal folgendes:
DeinName = ThisWorkbook.Path & "\" & ActiveSheet.Name & " " & Format(Now, "DD.MM.YYYY") & ".xlsb"
ThisWorkbook.SaveAs Filename:=DeinName, FileFormat:=xlExcel12
zum Hinweis:
51 = xlOpenXMLWorkbook (without macro's in 2007, .xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007, .xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007 with or without macro's, .xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007, .xls)
Gruß
marcl
Anzeige
AW: Speichern ohne Dateiendung. Warum nur?
06.01.2012 10:38:30
chandler
Hallo marc,
leider funktioniert es nicht wie ich es angedacht habe. Hier als Beispiel Excel 2003
Erstens, es soll nur die aktive Tabelle als einzelne Datei gespeichert werden und nicht die ganze Datei.
Zweitens, das " Fenster Speicher unter" soll geöffnet werden.
Sub test() 'einzelne Tabellen speichern
If MsgBox(prompt:="Möchten Sie die Tabelle speichern?", Buttons:=vbYesNo + vbQuestion) _
= vbNo Then Exit Sub
strDateiname = Range("AO2").Value
ActiveSheet.Copy
strDateiname = ThisWorkbook.Path & "\" & ActiveSheet.Name & " " & Format(Now, "DD.MM.YYYY") & ". _
xls"
ThisWorkbook.SaveAs Filename:=strDateiname, FileFormat:=xlExcel8
ActiveWorkbook.Close SaveChanges:=False
End Sub
Die ganze Datei wird kopiert und nicht die einzelne Tabelle, zudem bleibt die neue Datei offen und Quelle-Datei wird geschlossen.
Grüße chandler
Anzeige
AW: Speichern ohne Dateiendung. Warum nur?
06.01.2012 10:52:46
Hajo_Zi
ActiveSheet.Copy
Application.Dialogs(xlDialogSaveAs).Show "" ' speichern unter

AW: Speichern ohne Dateiendung. Warum nur?
06.01.2012 11:13:59
mumpel
Natürlich die ganze Datei, wenn Du "ThisWorkbook.SaveAs" schreibst. In Deinem ersten Makro hast Du es richtig gemacht, nämlich "ActiveWorkbook.SaveAs".
Übrigens...
06.01.2012 11:18:27
mumpel
"xlExcel8" gibt es in Excel 2003 nicht, dort muss es "xlNormal" heissen. Wenn Du die Fehleranweisung "On Error Resume Next" aus Deinem Makro entfernen würdest, dan würden Dir alle Fehler angezeigt werden.
Wenn du Daten aus einer Zelle,....
06.01.2012 10:50:31
Matthias
einlesen möchtest....
Hallo Marc,
In "E3" steht dein Speichername:
Sub SpeichernAls()
dname = Sheets("1").Range("A2").Value
ename = Sheets("1").Range("B2").Value
ActiveWorkbook.SaveAs "C:\Archiv\Anwesenheit\" & dname & ename & ".xlsm"
Range("E3").Select ' Angabe aus einer Zelle entnehmen
End Sub
Reicht dir sowas ?
Gruß Matthias
Anzeige
Oops,...falsch beschrieben,...
06.01.2012 10:54:00
Matthias
hier werden Daten aus Zelle "A2" & "B2" als Dateiname geschrieben:
Sub SpeichernAls()
dname = Sheets("1").Range("A2").Value
ename = Sheets("1").Range("B2").Value
ActiveWorkbook.SaveAs "C:\Archiv\Anwesenheit\" & dname & ename & ".xlsm"  ' ENDUNG ANPASSEN!!!
Range("E3").Select
End Sub
Matthias
Übrigens...
06.01.2012 11:08:43
mumpel
Dateierweiterungen sollte man immer klein schreiben, nicht in Großbuchstaben.
AW: Übrigens...
06.01.2012 11:35:38
chandler
Hallo zusammen,
vielen Dank erstmal für die Hilfe, ich habe es fast geschafft, nur noch Excel 2010 macht Problemme.
Habe bereits folgendes erreicht, aber nur in Excel 2003. Komisch nur, dass
der Dateiname im Fenster "Speicher unter" in Gänsefüsschen ist, aber es funktioniert.
Sub Speichern() 'einzelne Tabellen speichern
Dim Tabelle
If MsgBox(prompt:="Möchten Sie die Tabelle speichern?", Buttons:=vbYesNo + vbQuestion) _
= vbNo Then Exit Sub
ActiveSheet.Copy
Tabelle = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & ActiveSheet.Name & " " &  _
Format(Now, "DD.MM.YYYY") & ".xls")
If Tabelle  False Then
On Error Resume Next
ActiveWorkbook.SaveAs Filename:=Tabelle
If Err.Number > 0 Then MsgBox "Tabelle wurde nicht gespeichert!"
On Error GoTo 0
End If
ERRHANDLER:
ActiveWorkbook.Close SaveChanges:=False
If Err.Number > 0 Then MsgBox Err.Description, , "Fehler Nr. " & Err.Number
End Sub
Wenn ich aber für Excel 2010 die Endung anpasse und statt ".xls" , ".xlsm" schreibe bekomme ich eine Meldung:
" Die folgenden Features können in Arbeitsmappen ohne Makros nicht gespeichert werden
.VB Projekt
…. Wählen Sie dann einen Datentyp mit aktivierten Makros in der Liste 'Dateityp' aus…"
Wie bereits erwähnt die einzelnen Tabellen haben ein kleines Makro als "Worksheet_Activate()"
Warum klappt es nicht bei Excel 2010 warscheinlich auch bei Excel 2007?
Kann mir dabei jemand helfen? Danke im Voraus. Grüße chandler
Anzeige
Nachgefragt!?
06.01.2012 11:59:20
chandler
Hallo mumpel,
Makro funnktioniert supper, vielen Dank.
Ich hätte gerne noch das aktuelle Datum und habe deshalb das Makro so ergänzt, leider ist die Dateiendung auch weg.
Sub Save_n()
Dim Tabelle As String
Application.DisplayAlerts = False
If MsgBox("Möchten Sie die Tabelle speichern?", vbYesNo, "Speichern?") = vbNo Then Exit Sub
ActiveSheet.Copy
Tabelle = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & ActiveSheet.Name & " " &  _
Format(Now, "DD.MM.YYYY"), _
IIf(Val(Application.Version) > 11, _
"Microsoft Excel Arbeitsmappe (*.XLSX),*.XLSX", _
"Microsoft Excel 97-2003 (*.XLS),*.XLS"))
If Tabelle = "Lasch" Then Exit Sub
With ActiveWorkbook
.SaveAs Filename:=Tabelle, FileFormat:=IIf(Val(Application.Version) > 11, 51, xlNormal)
.Close
End With
Application.DisplayAlerts = True
End Sub
Warum funktioniertes nicht, wenn das mit dem & " " & Format(Now, "DD.MM.YYYY") ergänzt wird?
Vorab vielen Dank Grüße chandler
Anzeige
AW: Nachgefragt!? Frage noch eimal offen
06.01.2012 12:00:59
chandler
Hallo mumpel,
Makro funnktioniert supper, vielen Dank.
Ich hätte gerne noch das aktuelle Datum und habe deshalb das Makro so ergänzt, leider ist die Dateiendung auch weg.
Sub Save_n()
Dim Tabelle As String
Application.DisplayAlerts = False
If MsgBox("Möchten Sie die Tabelle speichern?", vbYesNo, "Speichern?") = vbNo Then Exit Sub
ActiveSheet.Copy
Tabelle = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & ActiveSheet.Name & " " &   _
_
Format(Now, "DD.MM.YYYY"), _
IIf(Val(Application.Version) > 11, _
"Microsoft Excel Arbeitsmappe (*.XLSX),*.XLSX", _
"Microsoft Excel 97-2003 (*.XLS),*.XLS"))
If Tabelle = "Lasch" Then Exit Sub
With ActiveWorkbook
.SaveAs Filename:=Tabelle, FileFormat:=IIf(Val(Application.Version) > 11, 51, xlNormal)
.Close
End With
Application.DisplayAlerts = True
End Sub
Warum funktioniertes nicht, wenn das mit dem & " " & Format(Now, "DD.MM.YYYY") ergänzt wird?
Vorab vielen Dank Grüße chandler
Anzeige
AW: Nachgefragt!? Frage noch eimal offen
06.01.2012 12:20:22
mumpel
So wie es aussieht mag "GetSaveAsFileName" es nicht, wenn man das Datum als String anhängt.
Nachtrag
06.01.2012 12:28:14
mumpel
1. Das Problem ist ganz einfach erklärt. Da Du in der Datumsangabe Punkte verwendest, geht Excel von einer Dateiendung aus. Denn durch Punkte werden Dateiname und Dateiendung von einander getrennt. Nutze stattdessen Unterstriche, dann funktioniert es auch.
2. Du solltest zuerst den Dateinamen abfragen, dann erst die Tabelle kopieren. Sonst ahst Du eine kopierte Tabelle offen, wenn Du auf "Abbrechen" klickst.
Das war's!!! Vielen vielen Dank
06.01.2012 12:28:58
chandler
Hallo mumpel,
Hallo an Alle,
es funktioniert so, wie ich es mir vorgestellt habe.
Vielen Dank.
Grüße chandler
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige