Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro starten in einem anderen Tabellenblatt
#11
Hallo Ralf,

haste es probiert?
ich ja
ohne Call gings ned
Antworten Top
#12
Hi Wastl,

ja:
Option Explicit

Sub Test1()
   MsgBox ("jetzt wird Makro 2 aufgerufen!")
   Makro2
   MsgBox ("jetzt wird Makro 2 mit CALL aufgerufen!")
   Call Makro2
End Sub


Sub Makro2()
   MsgBox ("Dies ist Makro 2!")
End Sub
Antworten Top
#13
Hi Wastl,

die Makros laufen einwandfrei ohne irgendwelche Änderungen, das Einzige ist, die Datei muß unter Mappe1 gespeichert werden.
Syntaktisch ist der Code in Ordnung. Da aber die Referenzierung fehlt, kopiert der Code die Spalten A u. B von Tab1 nach Spalte D u. E von Tab1!
Das sieht dann so aus:

Arbeitsblatt mit dem Namen 'Tab1'
ABCDE
1
2Hier soll ein drittes Makro die beiden anderen Makros starten:Hier soll ein drittes Makro die beiden anderen Makros starten:
3Das soll nicht seinDas soll nicht sein
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg



.xlsm   Mappe1.xlsm (Größe: 22,16 KB / Downloads: 0)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#14
Ui,

möglicherweise bin ja auch ich völlig daneben.
:05:

Denn von allen Antworten hier, wird nicht auf die Aussage des TE Bezug genommen:
Zitat:Um die Sache zu vereinfachen möchte ich in Tab1 ein Makro über eine Schaltfläche starten, dass beide Makros hintereinander ausführt.
Bei mir funktioniert das nicht! Was mache ich falsch? Kann mir jemand helfen?

Wo bitte, ist in allen genialen Ausführungen von Euch die Schaltfläche berücksichtigt?
Schmoll

In seinem Beispiel is eine Schaltfläche in Tab1
Wenn man da drauf klickt passiert nix nada null 
Wenn man in dem Code zu der Schaltfläche in der 2. Zeile ein Call ganz vorne einfügt, geht was, das entsrechende Makro wird angesprochen.
Antworten Top
#15
Moin!
Ob per Call oder ohne ist prinzipiell erst mal Jacke wie Hose!
(sieht man mal von der unterschiedlichen Behandlung eines parametrisierten Makros ab)

In der Beispieldatei sind zwei Fehler:
  • die bereits erwähnte fehlende Referenzierung
  • der sinnbefreite Aufruf der weiteren Makros per Application.Run

Letzteres braucht man nur, wenn Makros aus Fremddateien aufgerufen werden sollen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#16
Hi Ralph,

deswegen erwähnte ich, dass die Makros einwandfrei laufen, wenn man die Datei als Mappe1 speichert, ansonsten schreit das Makro sofort nach der Mappe1, wenn man den Button drückt.

@Wastl,

die Schaltfläche tut doch. Mach doch mal das, was ich geschrieben habe, speichere die Datei vom TE unter Mappe1 und drücke den Button.


Zitat:Wenn man da drauf klickt passiert nix nada null

Stimmt nicht. Hast Du in Deinem aktuellen Verzeichnis eine Datei mit Namen Mappe1, dann passiert was. Am Besten kann man das feststellen, wenn man in Makro_2 oder Makro_3 einen Haltepunkt setzt, dann stoppt das Makro und der Debugger geht auf. Ansonsten steht plötzlich der Text aus A2 in D2!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#17
Hallo Boskobati,

Zitat:@Wastl, 

die Schaltfläche tut doch. Mach doch mal das, was ich geschrieben habe, speichere die Datei vom TE unter Mappe1 und drücke den Button. 
Ok,

ich mach 
und bekomme sofort einen Laufzeitfehler siehe Anhang.

Und das passt haargenau zu der Aussage des TE:
Zitat:Bei mir funktioniert das nicht! Was mache ich falsch? Kann mir jemand helfen?
Und mein Beitrag hat genau an dem Punkt geholfen.

Wenn ich mein Auto mit Wasserpumpenschaden in die Werkstatt bringe, will ich, dass sie mir die Wasserpumpe instandsetzen / erneuern und nicht auch noch das Seitenteil hinten rechts erneuern, weil es stark deformiert ist. 
Man kann mich darauf Aufmerksam machen, oder fragen, ob ich sie das mitmachen dürfen.
Das ist die Welt aus der ich komme. Klare Frage, klare Abhilfe.

Im 1. Beitrag des TE steht nix davon, dass man seine hochgeladene Beispielsdatei umbenennen muss.
Ich schreib jetzt nix mehr dazu bevor sich der TE ned meldet.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#18
Hi Wastl,

aber der Fehler ist nicht, daß das Makro nichts macht, sondern daß es eine Datei nicht findet:
   
   

Und wenn ich CALL davorschreibe, dann kommt:
   

oder wieder:
   
Antworten Top
#19
Hallo Zusammen,

ich musste erst ein bischen arbeiten, deshalb melde ich mich erst jetzt.

Eine Lösung habe ich gefunden, aber waum und weshalb, kann ich nicht erklären.

Zuerst einmal muss ich noch sagen, dass ich die Makros über Entwicklertools und Makro aufzeichnen herstelle.

- ) Als erstes müssen Makros, die Blattübergreifend arbeiten sollen in dem Blatt angefangen und beendet werden, wo sie auch aufgerufen werden sollen.

-) Makros, die andere Makros aufrufen, funktionieren nicht mehr, wenn Sie per e-mail verschickt werden! Diese Makros müssen gelöscht und neu aufgebaut werden!

-) Makros die in einem Tabellenblat aufgerufen werden und nur dort abgearbeitet werden, funktionieren auch nach dem verschicken per mail.

Vielleicht weiß einer von Euch warum und weshalb die Makros nicht funktionieren. Die Lösung zu wissen wäre interessant. Aber bitte nicht diesen Kauderwelsch von Basic, denn das verstehe ich nicht!

Vielen Dank für Euer Interesse und Eure Hilfsbereitschaft.

Bernd
Antworten Top
#20
Hallöchen,

das ist nicht ganz so wie Du schreibst.

Zitat:Als erstes müssen Makros, die Blattübergreifend arbeiten sollen in dem Blatt angefangen und beendet werden, wo sie auch aufgerufen werden sollen.

Du erstellst auf einem beliebigen Blatt einen Button z.B. aus den Formularsteuerelementen und weist ihm ein Makro zu, dass irgendwo in der Datei etwas anstellt. Wenn Du am Ende auf dem Blatt mit dem Button bleiben willst, kann sein. Wenn Du am Ende wo anders sein willst, dann schreib das ins Makro.

Zitat:Makros, die andere Makros aufrufen, funktionieren nicht mehr, wenn Sie per e-mail verschickt werden! Diese Makros müssen gelöscht und neu aufgebaut werden!

Es wäre sicher von Vorteil, wenn Du die Excel-Datei mit den Makros verschickst und nicht nur die Makros. Du musst auch nichts löschen und neu aufbauen. Wenn Dein Makro jedoch auf eine Datei in einem bestimmten Pfad zugreift und der Empfänger das eine oder andere nicht hat, muss was angepasst werden. Ralf hat ja auch schon geschrieben, dass da eine Datei nicht gefunden wird ... Und wenn ein Makro ein anderes aufruft, musst Du natürlich beide verschicken ...

Code:
Makros die in einem Tabellenblat aufgerufen werden und nur dort abgearbeitet werden, funktionieren auch nach dem verschicken per mail.

Wäre schlimm, wenn nicht. Ansonsten siehe meine Anmerkungen zu den beiden anderen Aussagen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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