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.