Makro Datei umbennen und speichern
#1
Hallo zusammen,

ich suche ein Makro mit dem die aktuell geöffnete Datei durch einen Klick auf die entsprechende Schaltfläche entsprechend umbenannt wird und anschließend gespeichert:

aktueller Dateiname: "Test"
neuer Dateiname: "Test_19_08_2017" also mit aktuellem Datum

Danke für eure Hilfe.
Top
#2
Hallo,

Sub SpeichernMitDatum()
 With ActiveWorkbook
   .SaveAs .Name & Format(Date, "_dd_mm_yyyy"), 52
 End With
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Uwe
Top
#3
Hallo Uwe,

danke für die Antwort, leider funktioniert es nicht so wie ich es mir vorstelle.

Zum besseren Verständnis, ich habe eine Vorlagendatei in dieser wird zuerst das folgende Makro ausgeführt:
Code:
Sub Datei erstellen()
Dim NeuerName As String, Speicherpfad As String

Speicherpfad = "C:\Users\Test\Documents"
NeuerName = "Übersicht_" & Range("B2") & Format(Date, "_dd_mm_yy") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=NeuerName
End Sub


In Zelle B2 steht "Testuser"

Ein neue Datei wird dadurch unter dem Namen "Übersicht_Testuser_19_08_2017" im Format .xlsm unter dem oben genannten Speicherpfad abgespeichert. Die Vorlagendatei bleibt unverändert.

Die neue Datei wird dann bearbeitet und durch einen Klick auf die entsprechende Schaltfläche soll diese umbenannt werden und anschließend gespeichert:

aktueller Dateiname: "Übersicht_Testuser_19_08_2017"
Neuer Dateiname: "Übersicht_Testuser_20_08_2017"

Es soll sich lediglich das Datum auf das aktuelle Tagesdatum ändern und nur noch die Datei mit dem neuen Dateiname verfügbar sein.

Danke für die Hilfe.
Top
#4
Hallo,

(20.08.2017, 13:50)Basti123 schrieb: danke für die Antwort, leider funktioniert es nicht so wie ich es mir vorstelle.
das Makro macht genau das, was Du ursprünglich fragtest. Dass sich Deine Vorstellungen zwischenzeitlich änderten, konnte ich nicht wissen.

Gruß Uwe
Top
#5
Hallo,

(20.08.2017, 13:50)Basti123 schrieb: Es soll sich lediglich das Datum auf das aktuelle Tagesdatum ändern und nur noch die Datei mit dem neuen Dateiname verfügbar sein.

Sub ErsetzenMitHeutigemDatum()
 Dim strDateiAlt As String
 Dim strPfad As String
 Dim varZ As Variant
 With ActiveWorkbook
   strDateiAlt = .FullName
   strPfad = .Path & Application.PathSeparator
   varZ = Split(.Name, "_")
   If DateSerial(Left(varZ(UBound(varZ) - 0), InStr(1, varZ(UBound(varZ) - 0), ".")), _
                      varZ(UBound(varZ) - 1), varZ(UBound(varZ) - 2)) = Date Then
     .Save
   Else
     varZ(UBound(varZ) - 0) = Format(Date, "yyyy")
     varZ(UBound(varZ) - 1) = Format(Date, "mm")
     varZ(UBound(varZ) - 2) = Format(Date, "dd")
     .SaveAs strPfad & Join(varZ, "_"), 52
     Kill strDateiAlt
   End If
 End With
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Basti123
Top
#6
Hallo Uwe,

funktioniert super, vielen Dank für die Hilfe :)
Top
#7
Hi Uwe,
Application.PathSeparator ist in Zeiten von SharePoint etwas gefährlich  Sleepy

Ich weiß eh nicht, wozu der gut ist (vielleicht in Ostindien oder in Mondonistan)
Aber auch da nicht wirklich, da es ja Application.PathSeparator ist und nicht System blabla

Technisch prüft man ob \ oder / im Pfad jedenfalls in der mir bekannten Unterwelt  :15:


In der Regel geht jeder faule Progger von einem FileServer aus und nimmt den \
Und dann sind wir wieder beim Application.PathSeparator  :19:

Es würde mich wirklich mal interessieren, ob in irgendeiner Umgebung dies etwas anderes als \ zurückgibt - ich meine Application.PathSeparator
Top
#8
Hi Jeanie,

(22.08.2017, 19:59)Jeanie schrieb: Es würde mich wirklich mal interessieren, ob in irgendeiner Umgebung dies etwas anderes als \ zurückgibt - ich meine Application.PathSeparator

z.B. beim Obst-Excel. Bei Verwendung einer Exceldatei abwechselnd auf Mac- und Windowsversion könnte es nützlich sein wie z.B. hier. Smile

Gruß Uwe
Top
#9
Hi,
aahhh , die Unixwelt vergesse ich doch immer wieder, da diese nicht zu meinem Universum gehört.
Und ich die auch grundsätzlich ausschließe.


Aber was spricht auch hier dagegen zu Prüfen ob der Pfad ein \ oder / enthält und den Delimiter dann entsprechend zu setzen.

if Instr(1,Pfad,"\") then sDelim = "\" else sDelim = "/"
oder ähnlich.

Sonst hat man in der Windows Welt das Problem mit SharePoint.

und ich gebe es ganz offen zu - auch wenn ich jetzt nicht nur von den Unixanhängern in die Hölle gewünscht werde:
ein MAC ist für mich sowohl in der Gummifood als auch in der PC Welt einfach nicht existent :19:
Ich würde aber auch  niemals eine Anwendung MAC kompatible erstellen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste