[XL2010] Blatt kopieren und Makros neu zuweisen

14/03/2013 - 20:24 von Jörg Eisenträger | Report spam
Hallo NG,

in einer Mappe A seien mehrere Sheets mit diversen Formularbuttons,
denen Makros aus der Mappe A zugewiesen sind.

Die Sheets sollen in eine andere Mappe B kopiert werden, in der es
dieselben Makros auch gibt.

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?


Gruß
Jörg
"One of the best ways to boost your Excel efficiency is also one of the best ways to shoot yourself in the foot."
(Susan Harkins auf www.techrepublic.com/blog/10things/10-mistakes-to-avoid-when-working-with-multiple-worksheets/1961 )
 

Lesen sie die antworten

#1 Michael Heinzelmann
15/03/2013 - 09:22 | Warnen spam
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

Ähnliche fragen