habe mich in den letzten Tagen ein bischen mit den Makros beschäftigt und bin dabei auf ein Problem gestoßen.
In meiner Datei habe ich 3 Tabellenblätter (vereinfachtes Beispiel): - Tab1 - Tab2 - Tab3 In Tab2 möchte ich Werte aus der Spalte A nach Spalte D kopieren. Dies habe ich mit einem Makro (Makro_Tab_2) gemacht. In Tab3 möchte ich Werte aus der Spalte B nach Spalte E kopieren. Dies habe ich mit einem Makro (Makro_Tab_3) gemacht.
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?
Ohne den code zu kennen ist das zäh richtig zu beantworten. Ich gehe mal davon aus, dass du deinen Code jeweils im Tabellenblatt gespeichert hast und nicht in einem Modul. Start in einem Modul erst das eine und dann das andere als Test. Wenn das klappt, kannste da nach dann weiter experimentieren.
In Anderen Modulen (Tabellen) musst du eventuell den Modulnamen vor die Sub mit aufnehmen, dann könnte es auch klappen. Spiel mal damit rum.
20.02.2018, 00:40 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2018, 00:45 von Käpt'n Blaubär.)
Hallo,
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?
Was Du falsch machst? Nun, mit Sicherheit, daß Du uns den/die Codes und die Dateien nicht zeigen willst.
Derzeit ist sogar noch unbekannt, wie Deine Makros überhaupt heißen. Da kann ich nur behaupten, daß das denkbar schlechte Voraussetzungen sind, Hilfe zu geben, aber auch ebenso schlechte Aussichten, vernünftige Hilfe zu empfangen.
Ich habe vor etwa zehn Jahren mal sowas programmiert und gerade eben noch mal nachgesehen, wie ich das damals gehandhabt habe. Und was soll ich sagen meine Codes befinden sich in normalen Modulen und das Zusammenspiel funktioniert.
Zu Deinem Problem kann ich also nur sagen ... jepp, das kann man machen PUNKT.
da braucht es kein Call, sondern eine eindeutige Referenz!
Code:
Sub Makro_Tab_2() ' ' Makro_Tab_2 Makro '
With Sheets("Tab2") .Range("A1:A10").Copy .Range("D1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End With End Sub Sub Makro_Tab_3() ' ' Makro_Tab_3 Makro '
With Sheets("Tab3") .Range("B1:B10").Copy .Range("E1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End With End Sub Sub Makros_Start() ' ' Makros_Start Makro '
' Makro_Tab_2 Makro_Tab_3 End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Zitat:da braucht es kein Call, sondern eine eindeutige Referenz!
Du hast wie immer sicherlich recht, dass is eindeutig die bessere Lösung. Aber Ein einfaches Call vor dem Code des TE brachte bei mir den Code zum laufen.
Zitat:Bei mir funktioniert das nicht! Was mache ich falsch? Kann mir jemand helfen?
20.02.2018, 09:39 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2018, 09:39 von BoskoBiati.)
Hi Wastl,
ein Makro in einem Modul, welches sich nicht auf ein Tabellenbaltt bezieht, macht was es will. Dieser Code läuft auch problemlos durch:
Code:
Sub Makro_Tab_2()
Range("A1:A10").Select Selection.Copy Range("D1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End Sub Sub Makro_Tab_3()
Range("B1:B10").Select Selection.Copy Range("E1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End Sub Sub Makros_Start()
Makro_Tab_2 Makro_Tab_3 End Sub
Allerdings macht er nichts, da kein Tabellenblatt angesprochen wird, kann man leicht testen. Der Originalcode läuft auch, aber er spricht eine Mappe1 an, was schon mal schlecht ist, wenn die Datei, in der das Makro steht, nicht Mappe1 heißt! Speichere die Datei mal unter Mappe1 und drücke den Button!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
für mich steht das gar nicht zur Debatte! Das die einzelnen Makros nicht richtig funktionieren is die andere Sache, vielleicht sind es nur Beispiele ohne Sinn und Verstand.
Ich habe herausgelesen, dass der TE nicht hinbekommt, wie mir der Schaltfläche in Tab1 seine Makros zum laufen bekommt. Und da hat eindeutig das Call gefehlt.
Ich habe es eingefügt, mit F9 einen Haltepunkt gesetzt, mit F8 auf schrittweise weiter gedrückt und beobachtet, dass das Makro nun ins Modul 1 wechselt und dort was tun will. Da war der Fall für mich erledigt und habe es abgebrochen und meine Antwort geschrieben, weil ich davon ausgehe, dass der TE genau nur dieses wissen wollte.
Aber so ist das mit der deutschen Sprache, es sind meist mehrere Interpretationen möglich. Nun warten wir einfach auf die Reaktion des TE
Zitat:Ich habe herausgelesen, dass der TE nicht hinbekommt, wie mir der Schaltfläche in Tab1 seine Makros zum laufen bekommt. Und da hat eindeutig das Call gefehlt.
wenn Du aus einem Makro ein anderes starten willst, funktioniert das ohne oder mit CALL gleich gut.