Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Speichern unter "Dateiname - Blattname - Datum"

109 views
Skip to first unread message

Detlef Rehn

unread,
Feb 2, 2010, 6:53:22 AM2/2/10
to
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


Andreas Killer

unread,
Feb 2, 2010, 9:18:21 AM2/2/10
to
Detlef Rehn 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

Detlef Rehn

unread,
Feb 2, 2010, 9:32:14 AM2/2/10
to
Hallo Andreas,

"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


Carlos Naplos

unread,
Feb 2, 2010, 9:38:34 AM2/2/10
to
Ok, Andreas war mal wieder schneller.

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
>
>

Andreas Killer

unread,
Feb 2, 2010, 10:13:39 AM2/2/10
to
Carlos Naplos schrieb:

> 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.

0 new messages