Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro von anderem Tabellenblatt starten

Forumthread: Makro von anderem Tabellenblatt starten

Makro von anderem Tabellenblatt starten
18.11.2005 13:28:09
anderem
Hallo!
Ich möchte ein Makro (Name FL), dass auf dem Tabellenblatt 1 mit einem Steuerelement bzw. mit der Tastenkombination strg + x gestartet wird auch von Tabellenblatt 2 mit Commandbutton direkt auf dem Tabellenblatt starten, ohne das ich den recht langen Makrocode komplett im Commandbutton Code wiederholen muß. Wer kann mir Code zum starten formulieren.
Viele Grüße
Karl-Heinz
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro von anderem Tabellenblatt starten
18.11.2005 13:49:18
anderem
Hallo Karl-Heinz,
vorausgesetzt dein Tabellenblatt 1 heißt "Tabelle1":

Private Sub CommandButton1_Click()
Call Tabelle1.FL
End Sub
Gruß Ingolf
AW: Makro von anderem Tabellenblatt starten
18.11.2005 14:32:29
anderem
Hallo Ingolf,
vielen Dank für die schnelle Antwort. Aber es passiert nichts. Das Makro wurd mit dem Makrorekorder aufgenommen und befindet sich im Modul 2. Es schreibt fortlaufend im Makro vorgegebene Zahlen (insgesamt 100 Stck.) in die Zelle b11 auf dem Tabellenblatt 1. Von hier aus fließen die Zahlen fortlaufend in andere Rechenoperationen ein. Ich hab gelesen, dass es nicht ohne weiteres möglich ist dieses Makro von einem anderen Tabellenblatt zu starten. In dem Makro wird auch nur die Zelle b11 selectiert bzw. activiert. Mach ich noch etwas falsch ?
Gruß
Karl-Heinz
Anzeige
AW: Makro von anderem Tabellenblatt starten
18.11.2005 15:32:45
anderem
Hallo Karl-Heinz,
folgende möglichen Fehlerquellen fallen mir ein:
Das Makro CommandButton1_Click() muß in das Modul desjenigen Tabellenblattes, in welchem der CommandButton eingefügt ist. Mit einem Doppelklick auf den Commandbutton im Entwurfsmodus kommst du automatisch an die richtige Stelle.
Wenn das Makro, welches aufgerufen werden soll in einem benutzerdefinierten Modul (Modul2) steht, reicht zum Aufruf im Prinzip der Name des Makros, also:

Sub CommandButton1_Click()
FL
End Sub
Vorausgesetzt natürlich, dass FL der richtige Name des Makros ist.
Oder meinst du nicht Modul2, sondern das Modul von Tabelle2? Dann muss es heissen:

Sub CommandButton1_Click()
Tabelle2.FL
End Sub
Das Schlüsselwort Call muss nicht unbedingt sein.
Gruß Ingolf
Anzeige
AW: Makro von anderem Tabellenblatt starten
18.11.2005 17:14:59
anderem
Hallo Ingolf,
hab' erst einmal einen Kaffee getrunken. Mit folgendem Code setze ich zwar das Makro in Betrieb; aber springe natürlich dabei von Tabellenblatt 2 auf das Blatt 1. Ich möchte aber auf dem aktuell geöffnetem Blatt bleiben.

Private Sub CommandButton1_Click()
Worksheets("Tabelle1").Activate
FL
End Sub

Wenn ich nur den Makronamen einfüge aktiviere ich Zelle b11 auf dem aktuellen Tabellenblatt2.
Gruß
Karl-Heinz
Anzeige
AW: Makro von anderem Tabellenblatt starten
20.11.2005 19:15:42
anderem
Hallo,
ich hab's gefunden. In meinem Makro wurde mit range("b11") nur die Zelle angesprochen wenn das Tabellenblatt geöffnet war. Nachdem ich mit Worksheets ("Tabelle1") im Makro das Blatt mit aufgenommen hatte funktionierte auch der empfohlene Code zum Start von einem anderen Tabellenblatt. Eine Ferndiagnose ist nicht einfach. Hat mich nach einiger Bedenkzeit aber doch auf den richtigen Weg geführt.
Danke Ingolf.
Gruß Karl-Heinz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro von anderem Tabellenblatt starten


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge einen CommandButton hinzu:

    • Wechsle zu dem Tabellenblatt, auf dem du den Button hinzufügen möchtest.
    • Gehe zu "Entwicklertools" und klicke auf "Einfügen", wähle dann "CommandButton".
  3. Füge den Code für den CommandButton ein:

    • Doppelklicke auf den CommandButton, um das Code-Fenster zu öffnen.
    • Füge den folgenden Code ein, um das Makro von einem anderen Tabellenblatt zu starten:
    Private Sub CommandButton1_Click()
       Call Tabelle1.FL ' Falls das Makro im Modul von Tabelle1 ist
    End Sub
    • Alternativ, wenn das Makro in einem Modul gespeichert ist, kannst du auch einfach den Namen des Makros verwenden:
    Private Sub CommandButton1_Click()
       FL
    End Sub
  4. Teste den Button:

    • Schließe den VBA-Editor und gehe zurück zu deinem Excel-Dokument.
    • Klicke auf den CommandButton, um sicherzustellen, dass er das Makro korrekt ausführt.

Häufige Fehler und Lösungen

  • Das Makro startet nicht:

    • Stelle sicher, dass der Code im richtigen Modul (z.B. dem Modul des CommandButtons) eingefügt wurde.
  • Falscher Makroname:

    • Überprüfe, ob der Name des Makros korrekt geschrieben ist. Es muss exakt dem entsprechen, was im Modul definiert ist.
  • Zelle wird nicht angesprochen:

    • Wenn dein Makro eine bestimmte Zelle (z.B. B11) aktiviert, stelle sicher, dass du im Makro den Bezug zu diesem Blatt korrekt gesetzt hast:
    Worksheets("Tabelle1").Range("B11").Select

Alternative Methoden

  • Makro beim Öffnen eines Tabellenblatts ausführen:

    • Du kannst ein Makro so einstellen, dass es automatisch beim Öffnen eines bestimmten Tabellenblatts ausgeführt wird. Füge dazu den folgenden Code in das entsprechende Tabellenblatt ein:
    Private Sub Worksheet_Activate()
      FL
    End Sub
  • Verwendung von Buttons oder Shapes:

    • Du kannst auch andere Steuerelemente wie Shapes oder ActiveX-Buttons verwenden, um Makros auszuführen.

Praktische Beispiele

  • Makro, das Daten verarbeitet:

    • Nehmen wir an, dein Makro „FL“ schreibt 100 vorgegebene Zahlen in die Zelle B11. Du kannst sicherstellen, dass der Code wie folgt aussieht:
    Sub FL()
      Dim i As Integer
      For i = 1 To 100
          Worksheets("Tabelle1").Cells(i + 10, 2).Value = i 'Schreibt in die Zellen B11 bis B110
      Next i
    End Sub
  • Öffnen eines Dialogfeldes:

    • Du kannst auch ein Dialogfeld anzeigen, wenn das Makro ausgeführt wird:
    Sub FL()
      MsgBox "Das Makro wurde erfolgreich gestartet!"
    End Sub

Tipps für Profis

  • Verwende Option Explicit:

    • Setze am Anfang deines Moduls Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler zu vermeiden.
  • Code modular halten:

    • Halte deinen VBA-Code modular und gut strukturiert, indem du Funktionen und Subprozeduren verwendest. So wird der Code wartungsfreundlicher.
  • Fehlerbehandlung implementieren:

    • Nutze On Error Resume Next oder On Error GoTo für eine bessere Fehlerbehandlung in deinem Makro.

FAQ: Häufige Fragen

1. Kann ich ein Makro beim Öffnen eines Tabellenblatts automatisch ausführen? Ja, du kannst das mit dem Worksheet_Activate() Event erreichen. Füge einfach den entsprechenden Code in das Tabellenblattmodul ein.

2. Was mache ich, wenn mein Makro nicht funktioniert? Überprüfe, ob der Makroname korrekt ist und ob der Code im richtigen Modul eingefügt wurde. Zudem kannst du Debugging durchführen, um mögliche Fehlerquellen zu finden.

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