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

Forumthread: Eine UserForm ansprechen

Eine UserForm ansprechen
16.11.2016 09:20:43
Sebastian
Hallo,
ich möchte Daten vom User mit mehreren Userforms abfragen.
Frage:
Wie kann ich in einem Makro auf unterschiedliche Userforms zugreifen? (jeweils nur eins gleichzeitig)
Ich muss ja immer den Namen in VBA eintragen oder Set UserForm=ufEingabe1 schreiben.
Ich habe den Namen aber als String...
Kann ich wie bei z.B. bei den Sheets(strBlattname) sowas auch bei den Userforms machen?
Danke!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Eine UserForm ansprechen
16.11.2016 09:40:58
Daniel
Hi
ein möglicher Lösungsansatz, wenn niemanden was besseres einfällt:
1. erstelle ein Dictionary-Objekt
2. erstelle in dem Dicitionary für jede Userform einen Eintrag mit dem entsprechenden Text as Key
3. Rufe dann die Userforms über das Dictionary auf
Sub test()
Dim dicUF As Object
Dim strUF As String
'--- Dictionary erstellen
Set dicUF = CreateObject("Scripting.dictionary")
'--- für jede Userform einen Dictionary-Eintrag anlegenen
Set dicUF("UF1") = UserForm1
Set dicUF("UF2") = UserForm2
Set dicUF("UF3") = UserForm3
'--- Userform über den Text verwenden
strUF = "UF2"
dicUF(strUF).Show 0
dicUF(strUF).Caption = "Hallo Welt"
End Sub

Gruß Daniel
Anzeige
AW: Eine UserForm ansprechen
16.11.2016 10:01:09
Nepumuk
Hallo,
eine Möglichkeit:
Public Sub Test()
    Dim strUserform As String
    strUserform = "UserForm1"
    UserForms.Add(strUserform).Show
End Sub

Gruß
Nepumuk
Anzeige
AW: Eine UserForm ansprechen
16.11.2016 11:50:12
Sebastian
Danke!
Genau das mit .Add wars!
;
Anzeige

Infobox / Tutorial

UserForms in Excel VBA effektiv ansprechen


Schritt-für-Schritt-Anleitung

Um in Excel VBA auf verschiedene UserForms zuzugreifen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Erstelle ein Dictionary-Objekt: Mit diesem Objekt kannst du die UserForms effizient verwalten.
  2. Füge Einträge in das Dictionary hinzu: Für jede UserForm legst du einen Eintrag an, wobei der Schlüssel ein String ist, der den Namen der UserForm repräsentiert.
  3. Rufe die UserForms auf: Du kannst die UserForms über den Schlüssel im Dictionary aufrufen.

Hier ist ein Beispielcode:

Sub test()
    Dim dicUF As Object
    Dim strUF As String
    '--- Dictionary erstellen
    Set dicUF = CreateObject("Scripting.Dictionary")
    '--- für jede Userform einen Dictionary-Eintrag anlegen
    Set dicUF("UF1") = UserForm1
    Set dicUF("UF2") = UserForm2
    Set dicUF("UF3") = UserForm3
    '--- Userform über den Text verwenden
    strUF = "UF2"
    dicUF(strUF).Show 0
    dicUF(strUF).Caption = "Hallo Welt"
End Sub

Mit diesem Code kannst du flexibel auf unterschiedliche UserForms zugreifen und sie anzeigen.


Häufige Fehler und Lösungen

Fehler 1: UserForm wird nicht angezeigt.

Lösung: Stelle sicher, dass der Name der UserForm korrekt im Dictionary eingetragen ist. Überprüfe die Schreibweise des Schlüssels.

Fehler 2: Laufzeitfehler beim Zugriff auf das Dictionary.

Lösung: Achte darauf, dass das Dictionary-Objekt richtig erstellt wurde. Verwende CreateObject("Scripting.Dictionary") zur Initialisierung.


Alternative Methoden

Eine alternative Möglichkeit, auf UserForms zuzugreifen, ist die Verwendung der UserForms.Add-Methode. Mit dieser Methode kannst du eine UserForm dynamisch erstellen und anzeigen, indem du den Namen als String übergibst.

Hier ein Beispiel:

Public Sub Test()
    Dim strUserform As String
    strUserform = "UserForm1"
    UserForms.Add(strUserform).Show
End Sub

Diese Methode ist besonders nützlich, wenn du den Namen der UserForm zur Laufzeit bestimmen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du UserForms in verschiedenen Szenarien verwenden kannst:

  • Benutzereingaben sammeln: Du kannst mehrere UserForms erstellen, um verschiedene Daten von Benutzern abzufragen, z.B. Name, Adresse und Telefonnummer.
  • Datenvalidierung: Verwende UserForms, um sicherzustellen, dass die Eingaben des Benutzers bestimmten Kriterien entsprechen, bevor die Daten in einer Excel-Tabelle gespeichert werden.

Tipps für Profis

  • Verwende immer Error-Handling in deinem Code, um Laufzeitfehler abzufangen, die bei der Verwendung von UserForms auftreten können.
  • Halte deine UserForms übersichtlich und intuitiv, um die Benutzerfreundlichkeit zu erhöhen.
  • Experimentiere mit verschiedenen Steuerelementen (z.B. ComboBox, ListBox) in deinen UserForms, um die Benutzerinteraktion zu verbessern.

FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere UserForms gleichzeitig anzeigen?
Antwort: In Excel VBA kannst du jeweils nur eine UserForm anzeigen. Du kannst jedoch die Logik so gestalten, dass eine UserForm nach der anderen angezeigt wird.

2. Frage
Kann ich die UserForms dynamisch zur Laufzeit ändern?
Antwort: Ja, du kannst die Eigenschaften der UserForms wie Titel, Größe oder Sichtbarkeit zur Laufzeit ändern, indem du auf die entsprechenden Eigenschaften zugreifst.

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