Namenszuweisung beim speichern?
Hallo liebe Excelgemeinde,
ich habe folgenden VBA Code um die Datei mit bestimmten Namen in einem bestimmten Pfad abzulegen. (auch hier erhalten)
Sub Datei_speichern()
On Error GoTo ERRORHANDLER
Dim Nachname_Vorname, Datum
Pfad = ActiveWorkbook.Path
SubPfad = Right(Pfad, 8)
If SubPfad = "_vorlage" Then
Length = Len(Pfad)
Pfad = Left(Pfad, Length - 9)
End If
Nachname_Vorname = Split(Range("J3"), ", ")
Datum = Split(Range("J5"), ".")
ActiveWorkbook.SaveAs Pfad & "\" & Nachname_Vorname(0) _
& "_" & Nachname_Vorname(1) & "_" & Datum(2) & "-" _
& Datum(1) & "-" & Datum(0) & ".xls"
ERRORHANDLER:
End Sub
Nun würde ich hier gerne noch den Dateinamen um den Inhalt einer Zelle erweitern.
Ich hoffe mir kann hier wieder geholfen werden.
Gruß, mac_d
Antwort schreiben
Antwort 1 von Beverly vom 17.01.2019, 14:48 Options
Hi,
z.B. in dieser Form
ActiveWorkbook.SaveAs Pfad & "\" & Nachname_Vorname(0) _
& "_" & Nachname_Vorname(1) & "_" & Datum(2) & "-" _
& Datum(1) & "-" & Datum(0) & [b]Worksheets("Tabelle1").Range("A1") &[/b] ".xls"
Application.EnableEvents = True
Bis später,
Karin
Antwort 2 von Beverly vom 17.01.2019, 14:51 Options
Hi,
sorry, die letzte Zeile Application.EnableEvents = True muss weg (Beitrag lässt sich leider nicht mehr editieren), die habe ich versehentlich mitkopiert.
Bis später,
Karin
Antwort 3 von mac_d vom 17.01.2019, 15:04 Options
Super, funktioniert einwandfrei!!
Vielen Dank!
Gruß, mac_d
Antwort 4 von mac_d vom 17.01.2019, 15:43 Options
Hallo,
jetzt habe ich "natürlich" noch ein Folgeproblem:
Dadurch entstehen zwei Dateien.
Nachname_Vorname_28.06.2007_in Arbeit
und
Nachname_Vorname_28.06.2007_Fertig
Gibt es eine Möglichkeit wenn im betreffenden Feld "Fertig" steht die alte Datei "in Arbeit" dann direkt zu löschen?
Liegen im selben Verzeichnis!
Bin sehr dankbar für Eure Vorschläge!
Gruß, mac_d
Antwort 5 von Beverly vom 17.01.2019, 19:44 Options
Hi,
als allgemeiner Code
Kill "C:\Excel_Test\Mappe8.xls"
Beachte aber, dass die Datei geschlossen sein muss und dass sie nicht in den Papierkorb wandert.
Bis später,
Karin
Antwort 6 von mac_d vom 18.01.2019, 07:42 Options
Vielen Dank für die Antwort, nur wird der Name ja ständig geändert (Datumseintrag im Namen). Also weis ich nicht vorher wann sie "Fertig" ist.
Die Datei, die gelöscht werden muss, muss die sein die als "fertig" gespeichert wurde und vorher anstatt "fertig" den Zusatz "in Arbeit" hatte.
Ich hoffe ich habe mich verständlich ausgedrückt. (Ist manchmal garnicht einfach ein Problem zu erklären ;-))
Gruß, mac_d
Antwort 7 von Beverly vom 18.01.2019, 16:17 Options
Hi,
du setzt doch den Namen der als "Fertig" zu speichernden Arbeitsmappe aus Werten in deiner Tabelle zusammen - also kannst du aus den selben Zellen auch auslesen, wie die zwischengespeicherte Arbeitsmappe heißt. Oder habe ich da was falsch verstanden?
Bis später,
Karin
Antwort 8 von mac_d vom 19.01.2019, 06:28 Options
Hallo,
aber wie baue ich das in diesen Killbefehl anständig ein?
Und kann ich das einfach so an den anderen Code dranhängen?
Vielen Dank für deine Geduld und Hilfe!
Gruß, mac_d
Antwort 9 von Beverly vom 19.01.2019, 14:58 Options
Hi,
das sollte eigentlich so funktionieren
Kill Pfad & "\" & Nachname_Vorname(0) _
& "_" & Nachname_Vorname(1) & "_" & Datum(2) & "-" _
& Datum(1) & "-" & Datum(0) & Worksheets("Tabelle1").Range("A1") & ".xls"
Oder du deklarierst eine String-Variable, falls der obige Code nicht funktioniert (kann es nicht testen, da ich deinen Tabellenaufbau nicht kenne)
Deine_Variable = Pfad & "\" & Nachname_Vorname(0) _
& "_" & Nachname_Vorname(1) & "_" & Datum(2) & "-" _
& Datum(1) & "-" & Datum(0) & Worksheets("Tabelle1").Range("A1") & ".xls"
Kill Deine_Variable
Du kannst den Code nach dem Befehl zum Speichern der endgültigen Fassung deiner Mappe einfügen.
Bis später,
Karin
Antwort 10 von mac_d vom 22.01.2019, 11:36 Options
Hallo,
Vielen Dank für Deine Mühen,
hat bestens funktioniert!
Gruß, mac_d