Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: UserForm mittels vba ohne separaten Button starten

UserForm mittels vba ohne separaten Button starten
Ole
Hallo Ihr Profis,
sitze schon ewig und google aber habe seit Stunden nicht gefunden, was ich anders machen muß. Würde mich riesig freuen, wenn Ihr helfen könntet. Habe folgendes Problem: Habe in meinem Projekt eine UserForm erzeug, wie man dies ganz normal tut. Projekt, rechte Maus, Einfügen, Userform etc. so befindet sich jetzt innerhalb meines Projektes neben meinem Modul und den Tabellenblättern auch ein Balken "UserForm1". Gehe ich nun auf den Balken "UserForm1" und doppelklicke meine Userform erscheinen wie üblich die Private Sub`s der UserForm, so auch Private Sub UserForm_Click(). Gehe ich nun auf dieser Private Sub UserForm_Click() und starte es mit "F5", funktioniert die UserForm vollständig wie gewollt.
Versuche ich jedoch ganz normal im Zuge der Abarbeitung des "Moduls1" z.B. mittels UserForm_Click.Show oder ähnlichem meine UserForm_Click zu starten, kommt ständig Laufzeitfehler 424 und debuggen.
Sicherlich, Ihr werdet die Hände über dem Kopf zusammenschlagen, aber ich weiß nicht, wie ich mir helfen soll. Danke für Eure Unterstützung.
Anzeige
AW: UserForm mittels vba ohne separaten Button starten
22.05.2010 21:01:46
hary
Hallo
schreib in Dein Modulan die Stelle wann die userForm erscheinen soll:
UserForm1.show
gruss hary
AW: UserForm mittels vba ohne separaten Button starten
22.05.2010 22:03:03
Ole
Danke Euch beiden erst einmal für Eure schnelle Antwort, muß aber gestehen, daß ich es wahrscheinlich noch nicht richtig verstanden habe. Habe schon wieder x Varianten ausprobiert ;-(
1. Habe jetzt in Modul1 (an die Stelle, wo ich die Userform starten möchte) geschrieben:
Call UserFormStart
2. Habe am Ende von Modul 1 eine weitere Prozedur ergänzt:
Sub UserFormStart()
UserForm_Click.Show
End Sub 3. Im Balken UserForm1 steht nach wie vor:
Private Sub CommandButton1_Click()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Unload Me
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Click()
End Sub
@Franz: Die Prozedur Userform_Click() wird erst gestartet, wenn du bei angezeigtem Userform irgendwo in das Userform klickst.
-- Damit konnte ich leider nichts anfangen.
Das gibt es doch gar nicht. Was mache ich falsch?
Anzeige
AW: UserForm mittels vba ohne separaten Button starten
22.05.2010 22:38:00
hary
Hallo
nix call UserForm oder Userform_click!!!!!!!
Einfach nur:
UserForm1.show
sehe dann in etwa so aus.

Sub abcbd()
'Hier Dein alter Code
UserForm1.Show 'das am Ende
End Sub

ansonsten Poste mal den Code von Modul1
gruss hary
Anzeige
AW: UserForm mittels vba ohne separaten Button starten
23.05.2010 01:42:13
fcs
Hallo Ole,
@Franz: Die Prozedur Userform_Click() wird erst gestartet, wenn du bei angezeigtem Userform irgendwo in das Userform klickst.
-- Damit konnte ich leider nichts anfangen.

Private Sub Prozedur Userform_Click()
Private Sub CommandButton1_Click()
Private Sub Worksheet_Change()
und viele andere, deren Name sich aus dem Namen eines Objekte, dem "_" und der Bezeichnung eines Ereignisses zusammensetzt, sind sogenannte Ereignismakros. Sie werden im VBA-Editor unter den Objektmodulen wie Userform, Tabellenblatt, Diagramm oder DieseArbeitsmappe angelegt. Bei Steuerelementen legt der Editor bei Doppelklick auf die Elemente automatisch die Start- und Ende-Zeile der nach Meinung der Microsoft-Programmierer am häufigsten verwendete Ereignisprozedur (z.B. bei Schaltflächen den Click) an.
Diese Prozeduren werden immer dann automatisch gestartet, wenn das zugehörige Ereignis stattgefunden hat.
Gruß
Franz
Anzeige
AW: UserForm mittels vba ohne separaten Button starten
23.05.2010 07:09:41
Ole
Lieber Hary, lieber Franz, habt 1.000- Dank (auch und gerade für eure mitternächtliche Hilfe). Am Ende war es ja viel einfacher als gedacht, aber ohne Eurer beider Unterstützung wäre ich nie allein darauf gekommen. Ihr habt mir beide damit wirklich doll geholfen. Danke und Frohe Pfingsten.
AW: UserForm mittels vba ohne separaten Button starten
22.05.2010 21:06:39
fcs
Hallo Ole,
zur Anzeige eines Userforms gibt es die Anweisung
  Userform1.Show  'UF-Name natürlich anpassen

Diese Zeile muss du dann in eine andere Prozedur einbauen, um das Userform anzuzeigen.
Die Prozedur Userform_Click() wird erst gestartet, wenn du bei angezeigtem Userform irgendwo in das Userform klickst.
Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

UserForm ohne separaten Button in Excel VBA starten


Schritt-für-Schritt-Anleitung

Um eine UserForm in Excel VBA ohne einen separaten Button zu starten, gehe folgendermaßen vor:

  1. UserForm erstellen: Klicke im VBA-Editor mit der rechten Maustaste auf dein Projekt und wähle „Einfügen“ > „UserForm“.

  2. UserForm bearbeiten: Füge Steuerelemente hinzu (wie z.B. Buttons) und bearbeite die Eigenschaften, wie Du es benötigst.

  3. UserForm anzeigen: In dem Modul, in dem Du die UserForm starten möchtest, füge den folgenden Code ein:

    Sub StarteUserForm()
       UserForm1.Show
    End Sub
  4. UserForm aufrufen: Rufe die Subroutine auf, wann immer Du die UserForm starten möchtest, z.B. durch einen anderen Ereignis-Trigger oder ein Makro.


Häufige Fehler und Lösungen

  • Laufzeitfehler 424: Wenn Du beim Aufruf der UserForm den Fehler 424 erhältst, stelle sicher, dass Du die UserForm richtig benannt hast und dass der Code in der richtigen Prozedur steht. Verwende einfach UserForm1.Show anstelle von Call UserForm_Click.

  • Ereignismakros: Vergiss nicht, dass Ereignismakros wie Private Sub UserForm_Click() nur dann ausgeführt werden, wenn das entsprechende Ereignis eintritt, z.B. ein Klick auf die UserForm. Diese Prozeduren sind nicht dazu gedacht, direkt aufgerufen zu werden.


Alternative Methoden

Es gibt mehrere Möglichkeiten, eine UserForm zu starten:

  • Direktes Aufrufen mit einem Button: Du kannst einen Button in der UserForm erstellen, der beim Klicken die UserForm schließt oder andere Aktionen ausführt:

    Private Sub CommandButton1_Click()
       Unload Me
    End Sub
  • Verwendung von Modulen: Du kannst die UserForm auch über ein Modul aufrufen. Das Beispiel oben zeigt, wie Du eine Subroutine erstellst, um die UserForm zu starten.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du eine UserForm in einem Modul aufrufen kannst:

Sub ShowMyUserForm()
    UserForm1.Show
End Sub

Du kannst diese Subroutine dann an verschiedenen Stellen in deinem VBA-Projekt aufrufen, um die UserForm zu starten, ohne dass ein separater Button benötigt wird.


Tipps für Profis

  • Verwende Unload Me: Um die UserForm nach der Verwendung zu schließen, füge Unload Me in die Schaltflächen-Klickereignisse ein, um Speicherplatz zu sparen.
  • Testen mit F5: Du kannst die UserForm in der Entwicklungsumgebung testen, indem Du die Prozedur mit F5 ausführst.
  • Benutzerfreundlichkeit: Achte darauf, dass die UserForm benutzerfreundlich gestaltet ist, um die Interaktion zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich die UserForm schließen?
Füge in einem der CommandButtons Unload Me ein, um die UserForm zu schließen.

2. Kann ich die UserForm bei einem bestimmten Ereignis starten?
Ja, Du kannst die UserForm in jedem Ereignis aufrufen, z.B. beim Öffnen einer Arbeitsmappe oder beim Klicken auf einen bestimmten Button.

3. Was mache ich, wenn die UserForm nicht angezeigt wird?
Überprüfe, ob der Code zum Anzeigen der UserForm korrekt ist (z.B. UserForm1.Show) und dass die UserForm im VBA-Editor richtig benannt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige