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

Sicherungskopie mit Dateinamen per Code

Sicherungskopie mit Dateinamen per Code
Harald
Hallo zusammen,
ich entwerfe und pflege viele Exceldateien in meiner Firma.
Deshalb möchte ich mir ein Makro einbauen in "pers. Arbeitsmappe" speichern, mit dem ich schnell eine Sicherungskopie der aktuellen Datei in einem Sammelordner speichern kann.
Beispiel:
Sub Sicherungskopie_speichern()
ActiveWorkbook.SaveCopyAs "D:\Testordner\Testunterordner\Dateiname" & Range(" _
aktullerBenutzer").Value & Format(Now, "DD.MM.YYYY - hh.mm.ss") & " Uhr" & ".xls"
End Sub

Nun zu meiner Frage wie muss der Code lauten, damit der aktuelle Dateiname automatisch im Dateinamen der Sicherungskopie erscheint?
Vielen Dank im voraus.
Gruß, Harald
c

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Sicherungskopie mit Dateinamen per Code
09.12.2010 07:07:09
Hajo_Zi
Hallo Harald,
ActiveWorkbook.Name

AW: So einfach!? Vielen Dank
09.12.2010 07:16:14
Harald
Hallo Hajo_Zi,
doch so einfach!? Vielen Dank für die schnelle Antwort.
Gruß aus Köln
Harald
nicht ganz so einfach?
09.12.2010 08:05:06
Erich
Hi zusammen,
Workbook.Name beinhaltet die Dateiendung, z. B. ".xls". Soll diese Endung im Sicherungsnamen doppelt stehen,
einmal beim alten Dateinamen und einmal ganz am Ende?
Mein Vorschlag:

Option Explicit
Sub Sicherungskopie_speichern()
Dim strNam As String
strNam = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)
ActiveWorkbook.SaveCopyAs "D:\Testordner\Testunterordner\" & _
strNam & "_" & Range("aktullerBenutzer").Value & _
Format(Now, "DD.MM.YYYY - hh.mm.ss") & " Uhr" & ".xls"
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: nicht ganz so einfach?
09.12.2010 08:26:38
Harald
Hallo Erich,
vielen Dank für deinen berechtigten Einwand und Deinen Vorschlag, welchen ich gerne umsetzen möchte.
Ich habe Deinen Lösungsvorschlag mal auf meine tatsächlichen Gegebenheiten angepaßt.
Sub Sicherungskopie_speichern()
Dim strNam As String
strNam = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)
ActiveWorkbook.SaveCopyAs "F:\Sicherungskopien\Alle Dateien\" & " Sicherungskopie von " & _
strNam & "_" & Format(Now, "YYYY.DD.MM - hh.mm.ss") & " Uhr" & ".xls"
End Sub
Leider erhalte ich einen Fehlerhinweis:
Laufzeitfehler "5":
Ungültiger Prozeduraufruf oder ungültiges Argument
Weißt Du oderjemand anderes voran das liegt?
Wie muss der Code angepaßt werden?
Vielen Dank
Gruß, Harald
Anzeige
Evtl mag XL die 'Löcher' u.vielen Pkte in...
09.12.2010 09:13:50
Luc:-?
…Pfad u.Namen nicht, Harald,
so etwas machen alte EDV-Cracks einfach nicht, auch, wenn's inzwischen mögl ist. Ist eher typisch für Sekretärinnen. Ein Name ist ein Name und kein Roman. Eine Datei hat auch noch Eigenschaften, da steht das alles auch drin und wird (bei entsprechender Einstellung) im Explorer auch angezeigt. Evtl hilft da das Apostrophieren des ganzen Ausdrucks (falls nicht noch ein anderer Fehler drin steckt, den ich jetzt nicht entdecken kann)…
Gruß Luc :-?
AW: Evtl mag XL die 'Löcher' u.vielen Pkte in...
09.12.2010 10:24:44
Harald
Hallo Luc, hallo Erich,
ich werde mich bessern, was Dateipfade und -namen angeht. Danke für den Hinweis.
Aber daran scheint es nicht zu liegen, dass es noch nicht funktioniert.
Im Debugger wird der fett markierteTeil als Fehler angezeigt:
Sub Sicherungskopie_speichern2()
Dim strNam As String
   strNam = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)
ActiveWorkbook.SaveCopyAs Chr(34) & _
"F:\Sicherungskopien\Alle Dateien\Sicherungskopie_" & _
strNam & "_" & Format(Now, "YYYYDDMM_hhmmss") & ".xls" & Chr(34)
End Sub

Gruß, Harald
uDer
Anzeige
noch ein Versuch
09.12.2010 11:26:43
Erich
Hi,
probier mal

Sub Sicherungskopie_speichern3()
Dim varP, strNam As String
strNam = ActiveWorkbook.Name
varP = InStrRev(strNam, ".")
MsgBox strNam
MsgBox varP
If IsNumeric(varP) Then
If varP > 0 Then strNam = Left(strNam, varP - 1)
End If
ActiveWorkbook.SaveCopyAs _
"F:\Sicherungskopien\Alle Dateien\Sicherungskopie_" & _
strNam & "_" & Format(Now, "YYYYMMDD_hhmmss") & ".xls"
End Sub
YYYYDDMM habe ich in YYYYMMDD geändert - scheint mir praktischer und in D gebräuchlicher.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Super, jetzt funktioniert es!!!
09.12.2010 13:35:53
Harald
Vielen Dank!!!!!!!!!!!!!!!!!!!!!!!!
Gruß aus Köln
Harald
zwei Vorschläge
09.12.2010 09:33:43
Erich
Hallo Harald,
Luc kann ich da nur voll und ganz zustimmen.
Probier doch mal (ungetestet):

Sub Sicherungskopie_speichern2()
Dim strNam As String
strNam = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)
ActiveWorkbook.SaveCopyAs Chr(34) & _
"F:\Sicherungskopien\Alle Dateien\Sicherungskopie von " & _
strNam & "_" & Format(Now, "YYYY.DD.MM - hh.mm.ss") & " Uhr" & ".xls" & Chr(34)
ActiveWorkbook.SaveCopyAs Chr(34) & _
"F:\Sicherungskopien\Alle Dateien\Sicherungskopie_" & _
strNam & "_" & Format(Now, "YYYYDDMM_hhmmss") & ".xls" & Chr(34)
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige