ich möchte aus einem Modul ein SUB (Makro) welches in einer UserForm steht aufrufen. Wie sieht der VBA-Code dafür aus?
Gruß
Jürgen
PS: Das aufrufen eines SUB (Makro) aus einem Modul läuft mit Application.Run ...
Gruß
Jürgen
PS: Das aufrufen eines SUB (Makro) aus einem Modul läuft mit Application.Run ...
ansteuern.
Ist übersichtlicher.
Wenn Du das Makro in der UF lassen willst, kannst Du es über ein Modul wie folgt aufrufen:
Sub Modulmakro()
Call UserForm1.CommandButton1_Click
End Sub
den Commanbutton darfst Du dann nicht als Private Sub deklarieren, sondern als "Public Sub".
Das würde dann so aussehen :
Sub CommandButton1_Click()
MsgBox "Test"
End Sub
Hoffe, das hilft Dir weiter.
VG,
Alex
hat gut geklappt mit:
Sub Modulmakro()
Call UserForm1.CommandButton1_Click
End Sub
aber wie sieht der Code aus wenn ich das ganze aus einer anderen Arbeitsmappe aufrufen will? Ich bekomme es nicht hin.
Gruß
Jürgen
VG,
Alex
ich schreibe alles in einer UserForm, weil ich viele verschiedene Arbeitsmappen habe, die alle die gleich UserForm nutzen. Bei einem UpDate der UserForm brauche ich so nur eine UserForm in die Arbeitsmappen neu importieren.
Momentan mach ich das manuell weil der maschinelle UpDate noch einen Fehler hat.
Danke
Gruß
Jürgen
Um ein SUB
(Makro) aus einer UserForm in Excel VBA aufzurufen, gehe wie folgt vor:
UserForm erstellen: Erstelle eine UserForm in deinem VBA-Projekt.
CommandButton hinzufügen: Füge einen CommandButton zur UserForm hinzu.
Private Sub erstellen: Definiere einen Private Sub
, der beim Klicken auf den CommandButton ausgeführt wird. Der Code könnte folgendermaßen aussehen:
Private Sub CommandButton1_Click()
Call Makroname
End Sub
Makro im Modul: Um das Makro von einem Modul aus anzusteuern, schreibe folgenden Code in dein Modul:
Sub Modulmakro()
Call UserForm1.CommandButton1_Click
End Sub
Public Sub verwenden: Achte darauf, dass der CommandButton
als Public Sub
deklariert ist, damit er von außen aufgerufen werden kann:
Public Sub CommandButton1_Click()
MsgBox "Test"
End Sub
Fehler: "Sub oder Funktion nicht gefunden": Stelle sicher, dass das SUB
als Public Sub
deklariert ist, wenn Du es von außerhalb der UserForm aufrufen möchtest.
Fehler: UserForm kann nicht gefunden werden: Achte darauf, dass die UserForm im aktuellen VBA-Projekt vorhanden ist und korrekt benannt wurde.
Lösung für Aufruf aus anderer Arbeitsmappe: Wenn Du das Makro aus einer anderen Arbeitsmappe aufrufen möchtest, verwende:
Application.Run "Arbeitsmappe.xlsm!UserForm1.CommandButton1_Click"
Wenn Du das SUB
nicht direkt aus der UserForm aufrufen möchtest, kannst Du folgende Alternativen nutzen:
Application.Run: Verwende Application.Run
, um das Makro aus einem Modul heraus zu starten:
Application.Run "Makroname"
SendKeys: Eine umständliche Methode ist die Verwendung von SendKeys
, um den CommandButton zu aktivieren. Dies wird jedoch nicht empfohlen, da es unzuverlässig sein kann:
SendKeys "{ENTER}"
Hier sind einige Beispiele, wie Du einen SUB
aus einer UserForm aufrufen kannst:
Aufruf eines Makros in der UserForm:
Private Sub CommandButton1_Click()
Call UserForm1.Makroname
End Sub
Aufruf eines Makros aus einem anderen Modul:
Sub StartUserForm()
UserForm1.Show
End Sub
Beispiel für Public Sub:
Public Sub Makroname()
MsgBox "Makro wurde aufgerufen!"
End Sub
Private Sub
und Public Sub
gut organisiert, um die Wartung zu erleichtern.1. Wie kann ich ein SUB
aus einer UserForm in einer anderen Arbeitsmappe aufrufen?
Du kannst das SUB
mit Application.Run
aufrufen, indem Du den vollständigen Pfad zur Arbeitsmappe angibst.
2. Was ist der Unterschied zwischen Private Sub
und Public Sub
?
Private Sub
kann nur innerhalb der UserForm aufgerufen werden, während Public Sub
von überall im Projekt aufgerufen werden kann.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen