Makro zuweisen anderes Arbeitsblatt
#1
Hallo,

ich hoffe mir kann hier jemand weiterhelfen.

Ich erstelle aus 1 Worksheet ca. 5 verschiedene Worksheets und möchte dort eine Makro inkludieren

                ActiveSheet.Buttons.Add(1072.5, 170.25, 141.75, 53.25).Select
                Selection.OnAction = "Formularstarten1"
                Selection.Characters.Text = "Starten"



jetzt ist mein Problem, dass er vor das Formularstarten1 noch den Namen des ersten Worksheets einfügt.

Mahnliste_Version1.xlsm!Formularstarten1

Wie kann ich das verhindern bzw. umgehen?

Problem die erstellten Worksheets gehen an andere Personen die jeweils keinen Zugriff auf das erste Worksheet haben, sprich dort kommt eine Fehlermeldung mit Dateipfad nicht korrekt.

Vielen Dank
Antworten Top
#2
Hallo

es gibt einen Weg, dazu rate ich dieses Blatt nur einmal mit einem Button einzurichten, inclusive Makro im Blatt, und das einfach als Vorlage kopieren!
Kein normalen CommandButton, den ich sonst bevorzuge, sondern als ActiveXSteuerelement einbauen!   Der Unterschied liegt im Makro zuweisen!
Bei ActiveXSteuerelemente ist das Makro immer mit dem aktiven Sheet verbunden, und muss dort im Sheet eingerichtet werden. Somit bleibt es im Sheet!

Mit dem Recorder kannst du das ja mal aufzeichnen.  Nach dem einfügen des Buttons musst du im VBA Editor auf "Entwicklungsmodus" gehen und dir den Code anzeigen lassen. Dann steht im neuen Blatt sofort der Text:  Private Sub CommandButton_BeiKlick.  Da musst du das auszuführende Makro reinschreiben.  Das ist dann mit dem Sheet verbunden!

mfg Gast 123

Als Alternative könntest du mit dem neuen Sheet ein neues Modul speichern, und das Makro in das neue Modul kopieren. Das ist aber mehr Arbeit!!
Antworten Top
#3
Okay klingt erstmal super.

Jetzt habe ich aber das Problem, dass ich das Makro bzw den Befehl nicht hinterlegen kann.

Ich hab dann im dem neuen Tabellenblatt stehen

private Sub CommandButton1_Click()

End Sub


Wenn da drin steht

private Sub CommandButton1_Click()

Formular.Show

End Sub

funktioniert alles und es passt.


Wie bekomm ich das in mein erstes Makro rein, dass er automatisch das einfügt?

Vielen Dank
Antworten Top
#4
Hallo

ich wiederhole noch einmal meinen Vorschlag:  Statt die Sache jedesmal neu zu erzeugen einmal ein Sheet komplett einrichten, mit Button und Makro, es z.B. Vlg=Vorlage benennen, und dann nur noch dieses fertige Sheet kopieren und einen neuen Blattnamen vergeben.

Den Code per VBA ins neue Sheet schreiben müsste ich selbst im Internet nach dem passenden Code googeln!  Oder ein Kollege kennt ihn??

mfg Gast 123

PS  ein fertiges Vorlage Blatt kann man ausblenden, dann ist es unsichtbar. Mit VBA kann man es aber leicht kopieren und neu benennen!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste