Makro in Schaltfäche ersetzen

Bild

Betrifft: Makro in Schaltfäche ersetzen
von: Steffen
Geschrieben am: 22.09.2003 13:16:07

Hallo,

ich habe ein Problem bei dem ich Eure Hilfe brauche.

Und zwar habe ich einer Mappe viele Blätter mit noch mehr Schaltfächen.

Nun hat sich der name der Mappe geändert, wo der Code liegt.

Zum Beispiel

bisher

Steuerung.xls!abrg_waehlen

jetzt

abrg_start.xls!abrg_waehlen

wie kann ich den Teil des zugewiesenen Makros automatisch ändern, denn bei sovielen schaltflächen ist das manuell ne riesen arbeit?

Danke schonmal

Steffen

Bild


Betrifft: AW: Makro in Schaltfäche ersetzen
von: xXx
Geschrieben am: 22.09.2003 13:31:43

Hallo,
etwa so:

Sub Name_neu()
for each sh in activeworkbook.sheets
for each b in sh.shapes
MName=b.onaction
MName=right(Mname,len(Mname)-13)
MName="abrg_start.xls" &MName
b.onaction=MName
next b
next sh
End Sub

13: Länge Steuerung.xls

Gruß aus'm Pott
Udo


Bild


Betrifft: Noch Fehler, bitte Hilfe
von: Steffen
Geschrieben am: 22.09.2003 14:03:54

Danke für deine Antwort,

aber habe noch einen Fehler:

ungültiger Prozeduraufruf oder ungültiges Argument.

die alte bezeichnung (Steuerung.xls!abrg_waehlen) kann auch nach dem Steuerung.xls auch anders lautet von wo aus ersetzt der Code denn er muss wirklich bloß steuerung.xls in abrg_start.xls ersetzen.

Danke Dir nochmal

Steffen


Bild


Betrifft: AW: Noch Fehler, bitte Hilfe
von: xXx
Geschrieben am: 22.09.2003 14:25:02

Hallo,
hast du noch andere Zeichnungselemente in deinen Sheets? Dann ist deren OnAction-Eigenschaft wahrscheinlich leer. Damit sollte der Fehler behoben sein:

Sub Name_neu()
for each sh in activeworkbook.sheets
for each b in sh.shapes
MName=b.onaction
If MName like "Steuerung.xls*" Then
MName=right(Mname,len(Mname)-13)
MName="abrg_start.xls" &MName
b.onaction=MName
end if
next b
next sh
End Sub

Gruß aus'm Pott
Udo


Bild


Betrifft: so ein mist...
von: Steffen
Geschrieben am: 22.09.2003 15:00:28

ich muss Dich leider nochmal um Hilfe bitte, jetzt hängt die ganze Geschichte bei der Zeile

Set MName = b.OnAction (Anwendungs und Objektorientierter Fehler)

Ich habe übrigens Schaltflächen und Kontrollkästchen in meinem Sheet.

Danke Dir nochmal


Steffen


Bild


Betrifft: AW: so ein mist...
von: xXx
Geschrieben am: 22.09.2003 17:56:23

Hallo,
bischen spät, ich war nicht online.
Ich habe nicht von 'Set' geschrieben. Mit Set werden Objekte definiert. MName ist ein Text. Nimm meinen Code und kopiere ihn in ein Modul. Falls du Option Explicit aktiviert hast, must du alle Var deklarieren oder Option Explicit llöschen.

Gruß aus'm Pott
Udo


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Makro in Schaltfäche ersetzen"