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
Um eine Subroutine in VBA von einem Tabellenblatt zu einem anderen aufzurufen, folge diesen Schritten:
ALT + F11 in Excel, um den Visual Basic for Applications (VBA) Editor zu öffnen.Sub Test()
MsgBox "Das ist ein Test!"
End SubSub AufrufVonTabelle1()
Call Test
End SubFehler: „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.
Wenn Du eine VBA Subroutine aus einem anderen Modul aufrufen möchtest, kannst Du auch folgende Methoden nutzen:
Direkter Aufruf: Anstatt Call Test zu verwenden, kannst Du einfach Test schreiben:
Sub AufrufVonTabelle1()
Test
End Sub
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
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
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.
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.