Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[XL2010] Blatt kopieren und Makros neu zuweisen

13 views
Skip to first unread message

Jörg Eisenträger

unread,
Mar 14, 2013, 3:24:03 PM3/14/13
to
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 )

Michael Heinzelmann

unread,
Mar 15, 2013, 4:22:55 AM3/15/13
to usen...@joergei.de
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

Jörg Eisenträger

unread,
Mar 15, 2013, 2:23:33 PM3/15/13
to

Hallo Michael,

>> 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
Genau das habe ich gemacht.

>und die Inhalte zu ändern.
Was meinst Du damit?

>Wenn Du nur die Buttons kopierst und mit VBA ändern möchtest, geht es bspw. so:
>
>Private Sub MoveMacroRef()
> ...
Das werde ich probieren in der Mappe B nach dem Kopieren des kompletten
Sheets von A nach B.

Danke erstmal. Ich melde mich.

Jörg Eisenträger

unread,
Mar 15, 2013, 4:57:32 PM3/15/13
to

>>Private Sub MoveMacroRef()
>> ...
>Das werde ich probieren in der Mappe B nach dem Kopieren des kompletten
>Sheets von A nach B.

Und genau so funktioniert es. Danke, Michael.
0 new messages