Supportnet / Forum / Tabellenkalkulation
Namenszuweisung beim speichern?
Frage
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 1 von Beverly
Hi,
z.B. in dieser Form
Bis später,
Karin
z.B. in dieser Form
ActiveWorkbook.SaveAs Pfad & "\" & Nachname_Vorname(0) _
& "_" & Nachname_Vorname(1) & "_" & Datum(2) & "-" _
& Datum(1) & "-" & Datum(0) & Worksheets("Tabelle1").Range("A1") & ".xls"
Application.EnableEvents = TrueBis später,
Karin
Antwort 2 von Beverly
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
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
Super, funktioniert einwandfrei!!
Vielen Dank!
Gruß, mac_d
Vielen Dank!
Gruß, mac_d
Antwort 4 von mac_d
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
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
Hi,
als allgemeiner Code
Beachte aber, dass die Datei geschlossen sein muss und dass sie nicht in den Papierkorb wandert.
Bis später,
Karin
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
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
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
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
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
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
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
Hi,
das sollte eigentlich so funktionieren
Oder du deklarierst eine String-Variable, falls der obige Code nicht funktioniert (kann es nicht testen, da ich deinen Tabellenaufbau nicht kenne)
Du kannst den Code nach dem Befehl zum Speichern der endgültigen Fassung deiner Mappe einfügen.
Bis später,
Karin
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_VariableDu 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
Hallo,
Vielen Dank für Deine Mühen,
hat bestens funktioniert!
Gruß, mac_d
Vielen Dank für Deine Mühen,
hat bestens funktioniert!
Gruß, mac_d

