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

Active.UserForm?

Forumthread: Active.UserForm?

Active.UserForm?
18.03.2003 11:39:01
Bernhard
Hi,
gibt es einen äquivalenten Befehl zu z.B. "Active.Sheet", der "Active.Userform" o.ä. heißt?

Ich möchte in einer Sub-Routine die aktive Userform "bearbeiten", und diese daher als Objekt übergeben.

Danke,
Bernhard

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: me
18.03.2003 11:43:26
Nike

Hi,
dafür kannst du me nehmen.
z.B.
me.close

Bye

Nike

Re: Active.UserForm?
18.03.2003 12:04:07
Thomas Risi

So einen Befehl gibt es nicht. Man könnte hierzu ein Objekt mit projektweiter Gültigkeit anlegen, und bei jedem Start einer UF die Objektvariable neu setzen.

Beispiel ...

Code für Modul:


Option Explicit

Public ActiveUF As Object

Sub GetActiveUF()
    MsgBox ActiveUF.Caption
End Sub


Code für UF-Klasse:


Option Explicit

Private Sub CommandButton1_Click()
    GetActiveUF
End Sub

Private Sub UserForm_Activate()
    Set ActiveUF = Me
End Sub


     Code eingefügt mit Syntaxhighlighter 2.0


Gruß
Thomas

Risi Thomas Softwareentwicklung



Anzeige
Re: me - tut so nicht
18.03.2003 12:04:53
Bernhard

Hi,

Dim objUserForm As Object

objUserForm = Me

tut so nicht...
Wo liegt mein gedanklicher Fehler?

Gruss,
Bernhard

Re: me - tut so nicht
18.03.2003 12:08:46
Thomas Raschen

So was wie me.hide sollte aber funzen.

mein Fehler!
18.03.2003 12:09:36
Bernhard

Man sollte zuerst zuende denken...

Habe die Set-Anweisung vergessen ;-)


Anzeige
gleich noch eine Frage dazu
18.03.2003 12:13:48
Bernhard

Hi,

ist es möglich, alle TextBoxen auf einmal anzusprechen, d.h. nicht explizit mit Namen zu benennen?
Ich habe verschiedene UserFormen mit unterschiedlicher Anzahl und Namen der Textboxen, die ich auf einmal löschen (Inhalt) will.

Danke,
Bernhard

;
Anzeige

Infobox / Tutorial

Active.UserForm in Excel VBA effektiv nutzen


Schritt-für-Schritt-Anleitung

Um die aktive UserForm in Excel VBA zu bearbeiten, kannst du die Me-Anweisung verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Erstelle eine UserForm und füge verschiedene Steuerelemente hinzu, wie z.B. TextBoxen und Buttons.

  3. Füge folgenden Code in das Codefenster der UserForm ein:

    Private Sub CommandButton1_Click()
       MsgBox "Aktuelle UserForm: " & Me.Caption
    End Sub
  4. Nutze die Me-Anweisung, um auf die Eigenschaften der UserForm zuzugreifen, beispielsweise:

    Me.Hide
  5. Schließe den VBA-Editor und teste die UserForm in Excel.


Häufige Fehler und Lösungen

Wenn du Probleme hast, die aktive UserForm zu bearbeiten, könnten folgende Fehler auftreten:

  • Fehler: "Objektvariable nicht festgelegt"

    • Lösung: Stelle sicher, dass du die Set-Anweisung verwendest, wenn du ein Objekt zuweist. Beispiel:
    Dim objUserForm As UserForm
    Set objUserForm = Me
  • Problem mit der Sichtbarkeit von Steuerelementen

    • Lösung: Verwende Me.Controls um auf Steuerelemente zuzugreifen, ohne sie manuell benennen zu müssen.

Alternative Methoden

Anstatt die Me-Anweisung zu verwenden, kannst du auch ein globales Objekt für die UserForm definieren. Hier ist, wie du es machst:

  1. Füge in einem Modul den folgenden Code hinzu:

    Public ActiveUF As UserForm
  2. Setze in der UserForm während der Aktivierung das globale Objekt:

    Private Sub UserForm_Activate()
       Set ActiveUF = Me
    End Sub
  3. Jetzt kannst du auf die aktive UserForm über ActiveUF zugreifen.


Praktische Beispiele

Hier sind einige praktische Beispiele, die zeigen, wie du alle TextBoxen in einer UserForm leeren kannst:

Private Sub CommandButton2_Click()
    Dim ctrl As Control
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            ctrl.Value = ""
        End If
    Next ctrl
End Sub

Mit diesem Code kannst du alle TextBoxen in deiner UserForm auf einmal ansprechen, ohne sie einzeln benennen zu müssen.


Tipps für Profis

  • Verwende die With-Anweisung, um den Code zu vereinfachen und lesbarer zu machen:

    With Me
       .Caption = "Neue Überschrift"
       .Width = 300
    End With
  • Optimiere die Benutzeroberfläche, indem du die Eigenschaften der UserForm anpasst, wie z.B. Hintergrundfarbe oder Schriftart, um die Benutzerfreundlichkeit zu erhöhen.


FAQ: Häufige Fragen

1. Kann ich die aktive UserForm per Code schließen? Ja, du kannst die aktive UserForm mit Me.Hide oder Unload Me schließen.

2. Wie kann ich auf Steuerelemente in einer UserForm zugreifen? Du kannst auf Steuerelemente über Me.Controls("NameDesSteuerelements") zugreifen.

3. Gibt es einen Befehl, um alle Steuerelemente auf einmal zu löschen? Ja, du kannst eine Schleife verwenden, um alle Steuerelemente zu durchlaufen und deren Werte zu leeren, wie im praktischen Beispiel gezeigt.

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