Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Aufruf SUB aus UserForm

Forumthread: VBA: Aufruf SUB aus UserForm

VBA: Aufruf SUB aus UserForm
16.10.2002 11:27:21
Jürgen
Hallo,
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 ...

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: VBA: Aufruf SUB aus UserForm
16.10.2002 11:49:49
@lex
Hallo Jürgen,
ich würde das Makro aus der UserForm nehmen und dann in der UF über
Private Sub CommandButton1_Click()
Call Makroname
End Sub

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

Anzeige
Re: VBA: Aufruf SUB aus UserForm
16.10.2002 13:52:50
Jürgen
Hallo 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

Re: VBA: Aufruf SUB aus UserForm
16.10.2002 14:17:35
@lex
Hallo Jürgen !
Dies ist unter anderem ein Grund warum ich Public Subs nicht in eine UF schreiben würde.
Fällt mir jetzt nur der umständliche Weg ein:
UserForm aufrufen
SendKeys um CommandButton1 auszulösen.

VG,
Alex

Anzeige
Re: VBA: Aufruf SUB aus UserForm
16.10.2002 14:35:19
Jürgen
Ja sieht scjlecht aus,

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

Anzeige
Re: VBA: Aufruf SUB aus UserForm
16.10.2002 15:11:29
@lex
Hallo Jürgen,
gut mit einem Modul musst Du eben zwei Arbeitsgänge erledigen.
Halte ich aber für eine sinnvollere Methode.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

VBA: Aufruf eines SUB aus einer UserForm in Excel


Schritt-für-Schritt-Anleitung

Um ein SUB (Makro) aus einer UserForm in Excel VBA aufzurufen, gehe wie folgt vor:

  1. UserForm erstellen: Erstelle eine UserForm in deinem VBA-Projekt.

  2. CommandButton hinzufügen: Füge einen CommandButton zur UserForm hinzu.

  3. 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
  4. 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
  5. 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

Häufige Fehler und Lösungen

  • 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"

Alternative Methoden

Wenn Du das SUB nicht direkt aus der UserForm aufrufen möchtest, kannst Du folgende Alternativen nutzen:

  1. Application.Run: Verwende Application.Run, um das Makro aus einem Modul heraus zu starten:

    Application.Run "Makroname"
  2. 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}"

Praktische Beispiele

Hier sind einige Beispiele, wie Du einen SUB aus einer UserForm aufrufen kannst:

  1. Aufruf eines Makros in der UserForm:

    Private Sub CommandButton1_Click()
        Call UserForm1.Makroname
    End Sub
  2. Aufruf eines Makros aus einem anderen Modul:

    Sub StartUserForm()
        UserForm1.Show
    End Sub
  3. Beispiel für Public Sub:

    Public Sub Makroname()
        MsgBox "Makro wurde aufgerufen!"
    End Sub

Tipps für Profis

  • Organisiere Deinen Code: Halte Deine Private Sub und Public Sub gut organisiert, um die Wartung zu erleichtern.
  • Verwende Module: Lagere häufig verwendete Funktionen in Module aus, um den Code in der UserForm schlanker zu halten.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um mögliche Laufzeitfehler abzufangen.

FAQ: Häufige Fragen

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.

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