Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makros in anderem Tabellenblatt ausführen

Makros in anderem Tabellenblatt ausführen
02.06.2009 10:08:27
Andrew
Hallo zusammen,
ich habe eine Exceldatei, die je Tabellenblatt mehrere Makros hat. Diese Makros sind in die verschiedenen Tabellen (in der VBA-Sicht) eingebettet. Jedes Tabellenblatt beinhaltet anderes Datenmaterial. Jedoch sind die Planphasen in allen Tabellen gleich. Das Anzeigen der Planphasen wird über Makros gesteuert.
Wie bekomme ich es hin, dass beim Ausführen eines Makros in Tabelle1 auch die entsprechenden Makros in den anderen Tabellenblätter ausgeführt werden?
Soll heißen, wenn man sich in Tabelle1 die Plandaten von Juni 2009 anzeigen lässt, sollen auch die Makros in den anderen Tabellen das entsprechende Makro für Juni 2009 ausführen.
Gibt es hier eine bestimmte Vorgehensweise? Ich habe es mit dem "Call" Befehl versucht, jedoch hat das nicht funktioniert.
Für eure Tipps und Hinweise wäre ich sehr dankbar.
Viele Grüße
Andrew
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros in anderem Tabellenblatt ausführen
02.06.2009 10:13:38
Beverly
Hi Andrew,
da müsstest du die Markos in ein allgemeines Modul schreiben und aus dem Tabellenblatt heraus aufrufen.


AW: Makros in anderem Tabellenblatt ausführen
02.06.2009 10:17:51
Andrew
Hallo Karin,
besten Dank für deine Antwort.
Bedeutet das, dass man grundsätzlich aus Tabellenmakros keine anderen Tabellenmakros aufrufen kann?
Viele Grüße
Andrew
Anzeige
AW: Makros in anderem Tabellenblatt ausführen
02.06.2009 10:32:51
Beverly
Hi Andrew,
das ist richtig. Markos, die von mehreren "Orten" aus aufgerufen werden sollen, müssen prinzipiell in einem allgemeinen Modul stehen.


Besten Dank für die Antwort!
02.06.2009 10:36:39
Andrew
o.T.
Viele Grüße
Andrew
Anzeige
Falls es zu 1em Missverständnis kommen...
02.06.2009 12:58:46
Luc:-?
...sollte, Andrew,
noch etwas Grundsätzliches:
In einem Dokument-Klassenmodul, das verstehen wir hier mal unter Tabellenmodul, der quasi "Rückseite" eines Tabellenblattes, sollten nur Ereignisprozeduren stehen, andere (allgemeine) Makros haben in allgemeinen (normalen) Modulen zu stehen (sofern sie nicht zu speziellen [allgemeinen] Klassenmodulen gehören). Dann gibt es auch keine Probleme mit Call. Alternativ kann/muss (andere Mappen) ggf auch Run verwendet wdn.
Gruß Luc :-?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makros in anderem Tabellenblatt ausführen


Schritt-für-Schritt-Anleitung

  1. Öffne die VBA-Entwicklungsumgebung:

    • Drücke ALT + F11, um die VBA-Entwicklungsumgebung zu öffnen.
  2. Erstelle ein allgemeines Modul:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt.
    • Wähle Einfügen > Modul.
  3. Schreibe deine Makros:

    • Füge die benötigten Makros in das allgemeine Modul ein. Beispiel:
      Sub MakroJuni()
       ' Dein Code für die Plandaten im Juni
      End Sub
  4. Rufe die Makros aus den Tabellenblättern auf:

    • In deinem Tabellenblatt-Makro kannst du nun das allgemeine Makro aufrufen:
      Sub Tabellenblatt1Makro()
       Call MakroJuni
      End Sub
  5. Führe das Makro aus:

    • Teste das Makro, indem du es direkt aus der VBA-Umgebung oder über die Excel-Oberfläche ausführst.

Häufige Fehler und Lösungen

  • Fehler: "Makro nicht gefunden"

    • Stelle sicher, dass das Makro im allgemeinen Modul angelegt wurde und der Name korrekt geschrieben ist.
  • Fehler: "Typenkonflikt"

    • Überprüfe die Parameter, die du in deinem Makro verwendest. Inkompatible Datentypen können diesen Fehler verursachen.

Alternative Methoden

  • Verwendung von Run:

    • Anstatt Call kannst du Application.Run verwenden, wenn du ein Makro aus einem anderen Modul aufrufen möchtest:
      Application.Run "MakroJuni"
  • Ereignisprozeduren:

    • Du kannst auch Ereignisprozeduren nutzen, um Aktionen auszulösen, wenn bestimmte Bedingungen erfüllt sind, beispielsweise beim Wechseln des Tabellenblatts.

Praktische Beispiele

  • Beispiel 1: Datenaktualisierung:

    • Wenn du beim Wechsel zu Tabelle1 die Daten für Juni aktualisieren möchtest:
      Private Sub Worksheet_Activate()
      Call MakroJuni
      End Sub
  • Beispiel 2: Multiple Makros:

    • Wenn du mehrere Makros ausführen möchtest, kannst du sie in einer einzigen Sub zusammenfassen:
      Sub AlleMakros()
      Call MakroJuni
      Call MakroJuli
      ' Weitere Makros hier aufrufen
      End Sub

Tipps für Profis

  • Modularität: Halte deine Makros modular, sodass sie leicht wiederverwendbar sind. Vermeide duplizierten Code, um die Wartbarkeit zu erhöhen.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinen Makros, um unerwartete Fehler elegant zu handhaben:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    Fehlerbehandlung:
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Kann ich Makros aus verschiedenen Excel-Dateien aufrufen?
Ja, du kannst Makros aus einer anderen Datei aufrufen, indem du die Datei mit Workbooks.Open öffnest und dann Application.Run verwendest.

2. Was sind die Vorteile eines allgemeinen Moduls?
Allgemeine Module ermöglichen eine bessere Organisation deines Codes und erleichtern das Aufrufen von Makros von verschiedenen Tabellenblättern aus.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige