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

Forumthread: Userform Makro aufrufen

Userform Makro aufrufen
Heiko
Hallo, zusammen,
ganz kurze Frage:
Wie kann ich aus einem Makro ein anderes Makro innerhalb einer UserForm aufrufen (also eine der Subs darin)?
Ich krieg immer den Fehler: Objektvariable oder With-Blockvariable nicht definiert (was nicht stimmt!)
Vielleicht geht das ja auch gar nicht...
Bin fuer Tips dankbar,
Heiko
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Userform Makro aufrufen
14.02.2012 21:36:39
Josef

Hallo Heiko,
in Zeile 17 deines Codes liegt der Fehler.

« Gruß Sepp »

Anzeige
AW: Userform Makro aufrufen
14.02.2012 21:51:08
Heiko
Danke, Josef.
Du bist ein Lustiger!
Aber zur Veranschaulichung:
Makro1
Sub aufrufen()
dim parameter1 as irgendwas, parameter2 as irgendwas
UserForm.ausfuehren parameter1, parameter2
End Sub
Makro2:
Sub ausfuehren (parameter1, parameter2)
mach irgendwas
End Sub
Alle Parameter sind dimensioniert und werden korrekt uebergeben. Kommt ja auch die Meldung: ObjektVARIABLE nicht definiert. Das versteh ich nicht...
Ohne UserForm vor dem .ausfuehren kommt die Meldung: Subroutine nicht vorhanden (oder so aehnlich...)
Klar, in diesem Fall ist die UserForm ja ein Objekt mit einer Routine darin.
Kann es sein, dass man einfach keine Subroutine innerhalb eines UserForm objektes aufrufen kann und das in einem normalen Modul stehen muss?
Anzeige
AW: Userform Makro aufrufen
14.02.2012 22:05:00
Josef

Hallo Heiko,
klar geht das, zumindest bei mir.
'Allgemeines Modul
Sub testUF()
  Dim p1 As Long, p2 As Long
  
  p1 = 5
  p2 = 7
  
  frmTest.testroutine p1, p2
  
End Sub



'Modul von UF-frmTest
Sub testroutine(param1 As Long, param2 As Long)
  MsgBox param1 * param2
End Sub



« Gruß Sepp »

Anzeige
AW: Userform Makro aufrufen
14.02.2012 22:12:57
Heiko
Schonmal gut zu wissen, dass es prinzipiell gehen muss.
Danke, Josef!
AW: Userform Makro aufrufen
15.02.2012 11:20:16
Josef

Hallo Marco,
.OnKey funktioniert nicht, wenn du UF den Focus hat. In dem Link den ich dir gepostet habe wird eine Lösung aufgezeigt, wenn es bei dir nicht läuft, dann hast du es eben nicht richtig gemacht.

« Gruß Sepp »

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform Makro in Excel aufrufen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Erstelle eine UserForm:

    • Klicke auf Einfügen > UserForm. Du kannst die UserForm nach deinen Wünschen gestalten.
  3. Füge ein Modul hinzu:

    • Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  4. Schreibe das Makro:

    • Füge das folgende Beispiel in das Modul ein, um ein Makro aus der UserForm aufzurufen:
    Sub aufrufen()
       Dim parameter1 As Long, parameter2 As Long
       parameter1 = 5
       parameter2 = 7
       UserForm1.ausfuehren parameter1, parameter2
    End Sub
  5. Erstelle die Subroutine in der UserForm:

    • Füge in der UserForm die folgende Subroutine hinzu:
    Sub ausfuehren(parameter1 As Long, parameter2 As Long)
       MsgBox parameter1 * parameter2
    End Sub
  6. Teste das Makro:

    • Rufe das Makro im Modul auf, um die UserForm zu starten und die Subroutine auszuführen.

Häufige Fehler und Lösungen

  • Fehler: Objektvariable oder With-Blockvariable nicht definiert:

    • Achte darauf, dass die UserForm korrekt referenziert wird. Wenn du UserForm1 anstelle von UserForm verwendest, sollte der Fehler behoben sein.
  • Fehler: Subroutine nicht vorhanden:

    • Stelle sicher, dass die Subroutine tatsächlich in der UserForm definiert ist und dass der Name korrekt geschrieben ist.

Alternative Methoden

Eine alternative Methode, um ein Excel Makro aufzurufen, besteht darin, eine Schaltfläche auf der UserForm zu verwenden. Du kannst die Schaltfläche mit einem Click-Event verknüpfen, das das gewünschte Makro aufruft. Hier ein Beispiel:

Private Sub CommandButton1_Click()
    Call aufrufen
End Sub

Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du ein Excel VBA UserForm aufrufen kannst:

  1. Erstelle eine UserForm mit einem Button, der eine Berechnung ausführt.
  2. Verwende den folgenden Code im Modul:
Sub StartUserForm()
    UserForm1.Show
End Sub
  1. Im UserForm1:
Private Sub CommandButton1_Click()
    Call ausfuehren(5, 10)
End Sub

Tipps für Profis

  • Verwende Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Organisiere deinen Code in übersichtliche Module und UserForms, um die Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro einfach aus einer UserForm aufrufen?
Du kannst das Makro im Modul definieren und dann die UserForm anzeigen, um die gewünschten Funktionen auszuführen.

2. Funktioniert das in allen Excel-Versionen?
Ja, die beschriebenen Methoden funktionieren in den meisten aktuellen Excel-Versionen, die VBA unterstützen.

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