[VBA] Excel - Blatt inkl Makro kopieren

Knufu

Lieutenant
Registriert
Dez. 2011
Beiträge
592
Hallo,

ich habe eine Tabelle mit einem Makro (Hinterlegt in diesem Arbeitsblatt) das über einen Button gestartet wird.
Nun will ich dieses Blatt inkl. der Makros in eine andere Datei kopieren (rechtsklick auf das Blatt und kopieren).

Wenn ich das Makro in der neuen Datei aufrufen will, wird das Makro aus der Urpsrungsdatei geöffnet. Ich muss also immer die Makros neu zuweisen.
Was mache ich falsch?

Danke für Eure Hilfe
 
Die Makros werden nicht auf Arbeitsblattebene sondern pro Arbeitsmappe gespeichert.

Ich denke so sollte es funktionieren:
  1. Rechte Maustaste auf den Arbeitsblattreiter
  2. "Verschieben oder kopieren" wählen
  3. "Kopie erstellen" anklicken + "neue Arbeitsmappe" wählen
Danach sollte das Makro und die Schaltfläche in einer neuen Arbeitsmappe erscheinen
 
miac schrieb:
Die Makros werden nicht auf Arbeitsblattebene sondern pro Arbeitsmappe gespeichert

Kann ich so nicht nachvollziehen, da es sehr wohl einen Unterschied macht, ob ich das Makro im jeweiligen Blatt speicher oder unter "DieseArbeitsmappe" oder in einem Modul.


Habe es nochmal mit einer ganz neuen Datei (1) und einem kleinen Makro versucht.
1. Neue Datei -> Makro in die "Tabelle1" und Button (aus Formularsteuerelemente) mit diesem Makro verknüpft.
2. Makro per Button ausführen -> Test erfolgreich
3. Rechte Maustaste auf das Arbeitsblatt -> "Verschieben oder kopieren" -> Kopie erstellen in neuer Mappe (2)
4. Datei (1) geschlossen
5. Makro per Button in Datei (2) gestartet -> es wird das Makro in Datei (1) aufgerufen und auch in den Eigenschaften des Buttons weißt das Makro auf Datei (1)

:freak:
 
Was hast Du denn für eine Office Version (meine ist Office 2010)?
Bei mir wird das Abspeichern unter einen Blatt gar nicht angeboten, oder gibt es da einen Trick?
 
Habe ebenfalls Office 2010.
Wenn du im VBA Editor bist kannst du doch auswählen wo du den Code eintragen willst.
 
dann kopier halt den code in ein Modul......



schau dir das hier mal an...

Application.VBE.ActiveVBProject.VBComponents("Modul1").Export ("c:\temp\Modul1.bas")

Application.VBE.ActiveVBProject.VBComponents.Import ("c:\temp\Modul1.bas")

kurz...

modul exportieren, neue excel datei öffnen und modul wieder importieren..
 
Danke für den Tip.
Jedoch war es bisher in einem Modul.

Der Gedanke hinter der jetzigen Situation ist:
Es soll eine Art Tool sein, das sich unbedarfte Anwender in ihre Datei kopieren und dort ohne weiteres zutun das Makro ausführen können...
 
Wenn Du in Excel nicht den Makrorekorder benutzt und den Code unter einem Tabellenblatt einträgst, trägst Du es im Deklarationsteil (Allgemein) ein, welcher dadurch, daß Du "sub" schreibst, trotzdem global ist.

Das Makro ist trotzdem auch anderen Blättern bekannt und ein vergebener Shortcut funktioniert mappenweit.

Ich habe jetzt auch in dem Fall mal probiert, die Tabelle wie oben beschrieben zu kopieren und es funktioniert in der neuen Mappe genauso.
 
miac schrieb:
Wenn Du in Excel nicht den Makrorekorder benutzt
Der wurde nicht genutzt.

miac schrieb:
... und ein vergebener Shortcut funktioniert mappenweit.

Sicher funktioniert es "Mappenweit". Das ist auch gar nicht die Frage!
Mir geht es darum, dass es in einer neuen Datei funktioniert ohne, dass ich die Verknüpfung zum Makro per Hand ändern muss.
 
Zurück
Oben