Speichern unter über Makro?

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)

Servus Anton

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]

Hallo Anton,

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

Gruß
(Woly)

Ich danke dir/euch.
Das hat super funktioniert.
Thanks