Discussion:
[XL2010] Blatt kopieren und Makros neu zuweisen
(zu alt für eine Antwort)
Jörg Eisenträger
2013-03-14 19:24:03 UTC
Permalink
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
2013-03-15 08:22:55 UTC
Permalink
Hallo Jörg,
Post by Jörg Eisenträger
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
2013-03-15 18:23:33 UTC
Permalink
Hallo Michael,
Post by Michael Heinzelmann
Post by Jörg Eisenträger
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.
Post by Michael Heinzelmann
und die Inhalte zu ändern.
Was meinst Du damit?
Post by Michael Heinzelmann
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.


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 )
Jörg Eisenträger
2013-03-15 20:57:32 UTC
Permalink
Post by Jörg Eisenträger
Post by Michael Heinzelmann
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.


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 weiter auf narkive:
Loading...