340 Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (481 Punkte)
Hallo,
in Excel habe ich ein Blatt, welches nach dem speichern als *xlsx Datei versandt werden soll.

[b]Application.Dialogs(xlDialogSaveAs).Show sFilename, xlOpenXMLWorkbook
[/b]

Der Name besteht aus dem aktuellen Jahr _ aktueller Monat _ aktueller Tag _ Inhalt Zelle AZ26 _ [b]die ersten fünf Zeichen [/b]des Inhalts Zelle AZ29 _ Inhalt Zelle AZ30

2018_01_10_xxx_yyy_zzz

xxx=AZ26
yyy=AZ29
zzz=AZ30

Kann mir jemand helfen?

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

wenn es nur um den Dateinamen geht, dann probier es mal so:

[code]Sub name()

Dim strName As String

strName = Year(Date)

If Month(Date) < 10 Then
 strName = strName & "_0" & Month(Date)
Else
 strName = strName & "_" & Month(Date)
End If

If Day(Date) < 10 Then
 strName = strName & "_0" & Day(Date)
Else
 strName = strName & "_" & Day(Date)
End If

strName = strName & "_" & Left(Range("AZ26"), 5) & "_" & Left(Range("AZ29"), 5) & "_" & Left(Range("AZ30"), 5)

MsgBox strName

End Sub[/code]
Gruß

M.O.
0 Punkte
Beantwortet von Mitglied (481 Punkte)
Hallo M.O. ,

danke das Makro funktioniert.

Wie bekomme die denn nun die Variable name als Vorschlag für sFilename?

Application.Dialogs(xlDialogSaveAs).[b]Show sFilename[/b], xlOpenXMLWorkbook
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo happy1998,

das kannst du so machen:

[code]Sub name()

Dim strName As String
Dim strDatei As String

strName = Year(Date)

If Month(Date) < 10 Then
 strName = strName & "_0" & Month(Date)
Else
 strName = strName & "_" & Month(Date)
End If

If Day(Date) < 10 Then
 strName = strName & "_0" & Day(Date)
Else
 strName = strName & "_" & Day(Date)
End If

strName = strName & "_" & Left(Range("AZ26"), 5) & "_" & Left(Range("AZ29"), 5) & "_" & Left(Range("AZ30"), 5) & ".xlsx"

Datei = Application.GetSaveAsFilename(InitialFileName:=strName, fileFilter:="Excel-Arbeitsmappe, *.xlsx")
If Datei = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=Datei

End Sub[/code]

Gruß

M.O.
0 Punkte
Beantwortet von Mitglied (481 Punkte)
Hallo M.O.

habe das Makro eingebaut bekomme aber eine Fehlermeldung:
Laufzeitfehler '1001'
Diese Erweiterung kann nicht mit dem ausgewähltem Dateityp verwendet werden ....

ActiveWorkbook.SaveAs Filename:=Datei

Hintergrund:
Die genutzte Datei ist eine *.xlsm Datei, die vor dem versenden als *.xlsx gespeichert werden soll (und natürlich die Makro Funktionen verlieren soll).

Die *.xlsm Datei ist lediglich die Vorlage ...
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo happy1998,

ersetze am die Zeile
[code]ActiveWorkbook.SaveAs Filename:=Datei[/code]
durch
[code]ActiveWorkbook.SaveAs Filename:=Datei , FileFormat:=xlOpenXMLWorkbookMacroEnabled  [/code]
Gruß

M.O.
0 Punkte
Beantwortet von Mitglied (481 Punkte)
Hallo M.O.,

funktioniert leider nicht - es kommt die gleiche Fehlermeldung.
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo happy1998,

so funktioniert es bei mir:

[code]Sub name()

Dim strName As String
Dim strDatei As String

strName = Year(Date)

If Month(Date) < 10 Then
 strName = strName & "_0" & Month(Date)
Else
 strName = strName & "_" & Month(Date)
End If

If Day(Date) < 10 Then
 strName = strName & "_0" & Day(Date)
Else
 strName = strName & "_" & Day(Date)
End If

strName = strName & "_" & Left(Range("AZ26"), 5) & "_" & Left(Range("AZ29"), 5) & "_" & Left(Range("AZ30"), 5) & ".xlsx"

'Benachrichtungen ausschalten
Application.DisplayAlerts = False

Datei = Application.GetSaveAsFilename(InitialFileName:=strName, fileFilter:="Excel-Arbeitsmappe, *.xlsx")
If Datei = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=Datei, FileFormat:=xlOpenXMLWorkbook

'Benachrichtungen wieder einschalten
Application.DisplayAlerts = True

End Sub[/code]
Gruß

M.O.
...