ich habe unter Excel 2003 eine Datei mit verschiedenen Kalernderformaten
erstellt. Nun m�chte ich auf Knopfdruck einzelne Arbeitsbl�tter nach dem
Muster "Dateiname - Arbeitsblattname - Tagesdatum.xls" speichern.
Im Internet habe ich mir auch schon einige Codezeilen zusammenger�ubert,
allerdings mit dem unsch�nen Ergebnis, dass nun als Dateiname
Kalender neu.xls - Quartal - 2010-02-02.xls
angeboten wird. Wie muss ich meinen Code ab�ndern, damit die urspr�ngliche
Dateiendung nicht mehr auftaucht?
'Code in ein Modul (!)
'Danach in das Sheet eine "Schaltf�che" (Button) aus der Formulare Leiste
(!!!)
'einf�gen und diesem dieses Makro zuweisen:
Sub SpeicherMirsAlsNeueMappe()
Dim wksA As Worksheet
Dim wbkNeu As Workbook
Dim vntPathAndFile As Variant
Set wksA = ActiveSheet 'Beispiel
vntPathAndFile = Application.GetSaveAsFilename( _
InitialFileName:=ActiveWorkbook.Name & " - " & wksA.Name & " -" &
Format(Now, " yyyy-mm-dd") & ".xls", _
FileFilter:="Excel Files(*.xls), *.xls", _
Title:="Speichern als")
If Not vntPathAndFile = False Then
wksA.Copy
Set wbkNeu = ActiveWorkbook
wbkNeu.SaveAs vntPathAndFile
wbkNeu.Close
End If
End Sub
Vielen Dank f�r eure Hilfe.
Gru�, Detlef
> angeboten wird. Wie muss ich meinen Code abᅵndern, damit die ursprᅵngliche
> Dateiendung nicht mehr auftaucht?
Um eine Extension zu "entfernen" kann man GetBaseName benutzen.
Andreas.
Sub SpeicherMirsAlsNeueMappe()
Dim wksA As Worksheet
Dim wbkNeu As Workbook
Dim vntPathAndFile As Variant
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set wksA = ActiveSheet 'Beispiel
vntPathAndFile = Application.GetSaveAsFilename( _
InitialFileName:= _
fs.GetBaseName(ActiveWorkbook.Name) & " - " & _
wksA.Name & " - " & _
Format(Now, " yyyy-mm-dd") & ".xls", _
FileFilter:="Excel Files(*.xls), *.xls", _
Title:="Speichern als")
If Not vntPathAndFile = False Then
Set wbkNeu = ActiveWorkbook
wbkNeu.SaveCopyAs vntPathAndFile
"Andreas Killer" schrieb:
>
>> angeboten wird. Wie muss ich meinen Code ab�ndern, damit die
>> urspr�ngliche Dateiendung nicht mehr auftaucht?
> Um eine Extension zu "entfernen" kann man GetBaseName benutzen.
>
> Andreas.
>
> Sub SpeicherMirsAlsNeueMappe()
> Dim wksA As Worksheet
> Dim wbkNeu As Workbook
> Dim vntPathAndFile As Variant
>
> Dim fs As Object
> Set fs = CreateObject("Scripting.FileSystemObject")
>
> Set wksA = ActiveSheet 'Beispiel
> vntPathAndFile = Application.GetSaveAsFilename( _
> InitialFileName:= _
> fs.GetBaseName(ActiveWorkbook.Name) & " - " & _
> wksA.Name & " - " & _
> Format(Now, " yyyy-mm-dd") & ".xls", _
> FileFilter:="Excel Files(*.xls), *.xls", _
> Title:="Speichern als")
>
> If Not vntPathAndFile = False Then
> Set wbkNeu = ActiveWorkbook
> wbkNeu.SaveCopyAs vntPathAndFile
> wbkNeu.Close
> End If
> End Sub
Das klappt wie gew�nscht. Danke f�r die schnelle und kompetente
Unterst�tzung.
Gru�, Detlef
Mein Vorschlag wᅵre gewesen,
InitialFileName:=ActiveWorkbook.Name
durch
left(activeworkbook.name,Instrrev(activeworkbook.name,".")-1)
zu ersetzen.
Gruᅵ
CN
Detlef Rehn schrieb am 02.02.2010 12:53:
> Hallo Newsgroup,
>
> ich habe unter Excel 2003 eine Datei mit verschiedenen Kalernderformaten
> erstellt. Nun mᅵchte ich auf Knopfdruck einzelne Arbeitsblᅵtter nach dem
> Muster "Dateiname - Arbeitsblattname - Tagesdatum.xls" speichern.
> Im Internet habe ich mir auch schon einige Codezeilen zusammengerᅵubert,
> allerdings mit dem unschᅵnen Ergebnis, dass nun als Dateiname
>
> Kalender neu.xls - Quartal - 2010-02-02.xls
>
> angeboten wird. Wie muss ich meinen Code abᅵndern, damit die ursprᅵngliche
> Dateiendung nicht mehr auftaucht?
>
>
> 'Code in ein Modul (!)
> 'Danach in das Sheet eine "Schaltfᅵche" (Button) aus der Formulare Leiste
> (!!!)
> 'einfᅵgen und diesem dieses Makro zuweisen:
> Sub SpeicherMirsAlsNeueMappe()
> Dim wksA As Worksheet
> Dim wbkNeu As Workbook
>
> Dim vntPathAndFile As Variant
>
> Set wksA = ActiveSheet 'Beispiel
> vntPathAndFile = Application.GetSaveAsFilename( _
> InitialFileName:=ActiveWorkbook.Name & " - " & wksA.Name & " -" &
> Format(Now, " yyyy-mm-dd") & ".xls", _
> FileFilter:="Excel Files(*.xls), *.xls", _
> Title:="Speichern als")
>
> If Not vntPathAndFile = False Then
> wksA.Copy
> Set wbkNeu = ActiveWorkbook
> wbkNeu.SaveAs vntPathAndFile
> wbkNeu.Close
> End If
>
> End Sub
>
> Vielen Dank fᅵr eure Hilfe.
> Gruᅵ, Detlef
>
>
> Ok, Andreas war mal wieder schneller.
:-)) Entschuldige bitte.
> Mein Vorschlag wᅵre gewesen,
...
> left(activeworkbook.name,Instrrev(activeworkbook.name,".")-1)
Gut das Du das nicht gemacht hast, hᅵtte ich gleich gemeckert. ;-)))
Wenn Du eine neue (ungespeicherte) Mappe hast, dann ist kein Punkt im
Namen. GetBaseName funktioniert in allen Fᅵllen.
Andreas.