Hallo Jörg,
> Nach dem Kopieren verweisen die Buttons in der Mappe B jedoch immer noch
> auf die Makros in der Ursprungsmappe A. Wie kann ich allen Buttons in B
> möglichst elegant (per VBA?) die Makros aus der neuen Mappe B zuweisen,
> ohne es für jeden Button einzeln manuell machen zu müssen?
Am einfachsten geht es, das komplette Sheet von Mappe A nach Mappe B zu kopieren und die Inhalte zu ändern. (Funktioniert bei mir in Excel 2003 inklusive Makroübernahme)
Wenn Du nur die Buttons kopierst und mit VBA ändern möchtest, geht es bspw. so:
Option Explicit
Private Sub MoveMacroRef()
Dim o As Shape
Const sNameOld = "Mappe A"
Const sNameNew = "Mappe B"
For Each o In ActiveSheet.Shapes
If o.FormControlType = xlButtonControl Then
o.OnAction = Replace(o.OnAction, sNameOld, sNameNew, 1)
End If
Next o
End Sub
Sollten sich die Blatt Namen auch ändern, einfach an den Konstanten mit "!Blattname" anhängen.
Gruß,
Michael