Hallo nochmal.
Ich wollte mir in Excel ein Makro schreiben (aufzeichen), das wenn ich auf eine Befehlschaltfläche drücke sich die Datei selber abspeichert.
(Das funktioniert ja ohne Probleme)
Aber ich möchte, das sich das Programm nicht unter den vorherigen Namen abspeichert, sondern sich aus Zelle B12 den Namen nimmt (kopiert) und sich dann eben unter diesen Namen abspeichert.
Währe super, wenn mir da jemand weiterhelfe könnte.
(Habe zuerst versucht die Zelle B12 zu kopieren und dann auf „Speichern unter“ zu gehen. Aber sobald das Fenster Speichern unter geöfnet ist, kann ich nichts mehr einfügen (Auch nicht mit STRG+V)
Ein entsprechendes Makro könnte z. B. so ausschauen:
Sub SpeichernUnter()
Dim NeuerName As String
NeuerName = Range("B12")
ActiveWorkbook.SaveAs NeuerName
End Sub
MfG
Roland
Ich wollte mir in Excel ein Makro schreiben (aufzeichen), das
wenn ich auf eine Befehlschaltfläche drücke sich die Datei
selber abspeichert.
(Das funktioniert ja ohne Probleme)
Aber ich möchte, das sich das Programm nicht unter den
vorherigen Namen abspeichert, sondern sich aus Zelle B12 den
Namen nimmt (kopiert) und sich dann eben unter diesen Namen
abspeichert.
Hallo Roland.
Ich danke dir für die schnelle Antwort.
Jetzt nur noch eine Frage.
Wie sage ich es ihm, das er mir das auf der festplatte C unter Projekte (c:\Projekte) abspeichern soll?
Danke nochmal.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ich übernehme einfach mal Rolands Antwort; ich denke er hat nichts dagegen.
Wenn Du den Pfad fest in Dein Makro einbauen willst, geht’s so:
Sub SpeichernUnter()
Dim NeuerName As String
NeuerName = Range("B12")
ActiveWorkbook.SaveAs "c:\projekte\" & NeuerName
End Sub
Du kannst natürlich auch den Pfad aus einer anderen Zelle holen, z. B. „B11“
Sub SpeichernUnter()
Dim Pfad As String
Dim NeuerName As String
Pfad = Range("B11")
NeuerName = Range("B12")
ActiveWorkbook.SaveAs Pfad & NeuerName
End Sub
wobei Du darauf achten musst, daß am Ende der Pfadangabe ein Backslash „“ steht!
Den Code kann man dann auch noch vereinfachen:
Sub SpeichernUnter()
ActiveWorkbook.SaveAs Range("B11") & Range("B12")
End Sub