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

Sub aus anderem Tabellenblatt aufrufen

Forumthread: Sub aus anderem Tabellenblatt aufrufen

Sub aus anderem Tabellenblatt aufrufen
17.01.2004 14:44:20
Petra
Hallo Experten ...
es ist vielleicht nicht kompliziert, aber wie kann ich von tabelle1 aus das sub "test()" in tabelle2 aufrufen?
Für schnelle Antworten seid bedankt
Petra
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub aus anderem Tabellenblatt aufrufen
17.01.2004 15:20:34
MikeS
Hi Petra,
normalerweise geht das z.B. innerhalb der Prozedur mit Call Test.
Dafür müßte, meiner Meinung nach, aber die Prozedur in einem Modul stehen.
Ciao Mike
AW: Sub aus anderem Tabellenblatt aufrufen
17.01.2004 17:10:16
Petra
Ja ... das wars. Muss in einem Makro liegen und ist mit call aufrufbar!
Danke vielmals ...
Anzeige
;
Anzeige

Infobox / Tutorial

Sub aus anderem Tabellenblatt aufrufen


Schritt-für-Schritt-Anleitung

Um eine Subroutine in VBA von einem Tabellenblatt zu einem anderen aufzurufen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein Modul hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt, wähle „Einfügen“ und dann „Modul“.
  3. Erstelle die Subroutine: Schreibe deine Subroutine im neuen Modul. Beispiel:
    Sub Test()
       MsgBox "Das ist ein Test!"
    End Sub
  4. Rufe die Subroutine auf: In einem anderen Tabellenblatt kannst Du die Subroutine wie folgt aufrufen:
    Sub AufrufVonTabelle1()
       Call Test
    End Sub
  5. Speichere und teste: Speichere deine Änderungen und führe die Subroutine aus, um sicherzustellen, dass alles funktioniert.

Häufige Fehler und Lösungen

  • Fehler: „Sub oder Funktion nicht definiert“: Dieser Fehler tritt auf, wenn die Subroutine nicht im richtigen Modul definiert ist. Stelle sicher, dass die Subroutine in einem allgemeinen Modul und nicht in einem Arbeitsblattmodul definiert ist.

  • Lösung: Überprüfe die Struktur deines VBA-Projekts und verschiebe die Subroutine in ein allgemeines Modul, falls nötig.


Alternative Methoden

Wenn Du eine VBA Subroutine aus einem anderen Modul aufrufen möchtest, kannst Du auch folgende Methoden nutzen:

  1. Direkter Aufruf: Anstatt Call Test zu verwenden, kannst Du einfach Test schreiben:

    Sub AufrufVonTabelle1()
       Test
    End Sub
  2. Parameterübergabe: Du kannst auch Parameter an die Subroutine übergeben, um sie flexibler zu gestalten:

    Sub Test(parameter As String)
       MsgBox parameter
    End Sub
    
    Sub AufrufVonTabelle1()
       Test "Hallo Welt!"
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du eine Subroutine aus einem anderen Tabellenblatt aufrufen kannst:

  • Beispiel 1: Eine Subroutine zur Berechnung von Werten:

    Sub Berechnung()
       Dim Ergebnis As Double
       Ergebnis = 5 + 10
       MsgBox "Das Ergebnis ist: " & Ergebnis
    End Sub
    
    Sub AufrufVonTabelle1()
       Call Berechnung
    End Sub
  • Beispiel 2: Eine Subroutine, die Daten kopiert:

    Sub DatenKopieren()
       Sheets("Tabelle1").Range("A1").Copy Destination:=Sheets("Tabelle2").Range("A1")
    End Sub
    
    Sub AufrufVonTabelle1()
       Call DatenKopieren
    End Sub

Tipps für Profis

  • Verwendung von Public: Wenn Du sicherstellen möchtest, dass Deine Subroutine von überall aufgerufen werden kann, definiere sie als Public in einem Modul:

    Public Sub Test()
       ' Code hier
    End Sub
  • Sub des Tages Freitag: Nutze den Freitag, um regelmäßig deine VBA-Scripts zu überprüfen und zu optimieren. Ein geordneter Code ist essenziell für die Wartbarkeit.


FAQ: Häufige Fragen

1. Wie kann ich eine Subroutine aus einem anderen Workbook aufrufen?
Um eine Subroutine aus einem anderen Workbook aufzurufen, musst Du sicherstellen, dass das Workbook geöffnet ist und den vollständigen Bezug verwenden:

Application.Workbooks("DeinWorkbook.xlsm").Run "Test"

2. Kann ich eine Subroutine ohne Call aufrufen?
Ja, Du kannst die Subroutine einfach durch ihren Namen ohne Call aufrufen. Es ist jedoch eine gute Praxis, Call zu verwenden, um die Lesbarkeit zu erhöhen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige