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

Userform mittels Variable ansprechen

Forumthread: Userform mittels Variable ansprechen

Userform mittels Variable ansprechen
Captain
Hi @all,
wie kann ich eine Userform ansprechen (und einen Code hierfür ausführen), dessen Name ich in einer Variable habe?
Den Namen hole ich mir mit: aktUF = Me.Name
In dem Modul würde ich jetzt gerne so arbeiten:
Userforms(aktUF).TextBox1.Text= ...
aber das geht so nicht... bekomme eine Fehlermeldung
Habt ihr einen Tip für mich?
Danke
Jack
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform mittels Variable ansprechen
29.12.2011 10:39:29
Hajo_Zi
definiere eine Variable als Objekt
Set variable Me
Variable.Textbox1=...

AW: Userform mittels Variable ansprechen
29.12.2011 10:57:51
Captain
Hi Hajo,
echt klasse...funzt natürlich :-)
Danke und Guten Rutsch
Jack
AW: Userform mittels Variable ansprechen
29.12.2011 12:58:09
dan
Hi Jack,
laut Help is es so:
The UserForms collection is a collection whose elements represent each loaded UserForm in an application.
The UserForms collection has a Count property, an Item property, and an Add method. Count specifies the number of elements in the collection; Item (the default member) specifies a specific collection member; and Add places a new UserForm element in the collection.
Syntax
UserForms[.Item](index)
The placeholder index represents an integer with a range from 0 to UserForms.Count – 1. Item is the default member of the UserForms collection and need not be specified.
Remarks
You can use the UserForms collection to iterate through all loaded user forms in an application. It identifies an intrinsic global variable named UserForms. You can pass UserForms(index) to a function whose argument is specified as a UserForm class.
User forms have properties that determine appearance such as position, size, and color; and aspects of their behavior.
User forms can also respond to events initiated by a user or triggered by the system. For example, you can write code in the Initialize event procedure of the UserForm to initialize module-level variables before the UserForm is displayed.
usw...
Mfg dan, cz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform mit Variablen ansprechen in VBA


Schritt-für-Schritt-Anleitung

Um eine Userform mittels einer Variablen anzusprechen, kannst du den folgenden Ansatz verwenden. Dieser Prozess ist besonders nützlich, wenn du den Namen der Userform dynamisch festlegen möchtest.

  1. Definiere eine Variable: Zuerst musst du eine Variable für den Namen der Userform erstellen. Dies kannst du so tun:

    Dim aktUF As String
    aktUF = Me.Name  ' Hier wird der Name der aktuellen Userform gespeichert
  2. Verwende die UserForms-Sammlung: Um auf die Userform zuzugreifen, benutze die UserForms-Sammlung, die alle geladenen Userforms repräsentiert.

    UserForms(aktUF).TextBox1.Text = "Dein Text hier"
  3. Setze die Variable als Objekt: Alternativ kannst du die Userform als Objekt definieren, um darauf zuzugreifen.

    Dim variable As UserForm
    Set variable = UserForms(aktUF)
    variable.TextBox1.Text = "Dein Text hier"

Häufige Fehler und Lösungen

  • Fehlermeldung beim Zugriff: Wenn du eine Fehlermeldung erhältst, könnte das daran liegen, dass die Userform nicht geladen ist. Stelle sicher, dass die Userform vor dem Zugriff geöffnet ist.

  • Falscher Variablenname: Achte darauf, dass der Name in der Variable aktUF genau mit dem Namen der Userform übereinstimmt, einschließlich Groß- und Kleinschreibung.


Alternative Methoden

Eine weitere Möglichkeit, Userforms in VBA anzusprechen, besteht darin, die Userform direkt zu referenzieren, ohne die UserForms-Sammlung zu verwenden. Wenn du den Namen der Userform kennst, kannst du auch direkt darauf zugreifen:

UserForm1.TextBox1.Text = "Dein Text hier"

Diese Methode ist weniger flexibel, da du den Namen der Userform fest codieren musst.


Praktische Beispiele

  1. Datenübergabe zwischen Userforms:

    Dim aktUF As String
    aktUF = Me.Name
    UserForms(aktUF).TextBox1.Text = "Daten übergeben"
  2. Initialisierung bei Laden: Du kannst auch Code in der Initialize-Prozedur der Userform schreiben, um Variablen zu setzen, bevor die Userform angezeigt wird.

    Private Sub UserForm_Initialize()
       TextBox1.Text = "Willkommen!"
    End Sub

Tipps für Profis

  • Nutze die UserForms-Sammlung: Die vba userforms collection ist eine mächtige Funktion, um durch alle geladenen Userforms zu iterieren. Du kannst alle Userforms auflisten und aktivieren, was bei der Fehlersuche hilfreich ist.

  • Debugging: Verwende Debug.Print in deinem Code, um den Wert von aktUF zu überprüfen, bevor du darauf zugreifst. Das hilft dabei, Probleme schnell zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich den Namen meiner Userform dynamisch ändern?
Du kannst den Namen einer Userform zur Laufzeit nicht ändern. Stattdessen solltest du verschiedene Userforms für unterschiedliche Zwecke erstellen.

2. Was mache ich, wenn meine Userform nicht angezeigt wird?
Überprüfe, ob du die Userform korrekt geladen hast. Stelle sicher, dass der Code, der die Userform öffnet, vor dem Zugriff auf die UserForms-Sammlung ausgeführt wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige