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

Userform-Objekte zur Laufzeit erzeugen

Forumthread: Userform-Objekte zur Laufzeit erzeugen

Userform-Objekte zur Laufzeit erzeugen
22.08.2004 21:43:03
Heike
Hallo Gemeinde,
ist es möglich, während der Laufzeit Objekte in einem Userform zu erzeugen? Also ich öffne das UserForm, es werden z.B. die Spaltenüberschriften eingelesen und im Userform als Label dargestellt.
Liebe Grüsse Heike
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform-Objekte zur Laufzeit erzeugen
Ulf
Willst du die Label selbst erstellen oder nur deren Caption?
Ulf
AW: Userform-Objekte zur Laufzeit erzeugen
Heike
Hallo Ulf,
beides.
Liebe Grüsse Heike
AW: Userform-Objekte zur Laufzeit erzeugen
Ulf
Ohne VBA- Kenntnisse ist das gar nicht mal so anspruchslos. Warum kannst du die Label
denn nicht zur Entwurfszeit erstellen? Das ist wesentlich einfacher und spart zudem noch
Code.
Ulf
Anzeige
AW: Userform-Objekte zur Laufzeit erzeugen
Heike
Hallo Ulf,
die Abstufungen der Kenntnisse sind ein wenig grob. Keine stimmt nicht ganz, für gut halte ich mich auch nicht. Mich hatte das nur mal interessiert, ob es geht.
Liebe Grüsse Heike
AW: Userform-Objekte zur Laufzeit erzeugen
Ulf
Es geht (fast)alles. Ist nur die Frage, was notwendig, was ist zweckmäßiger oder noch anders, wie erreiche ich das, was ich brauche, am einfachsten.
Ulf
Anzeige
AW: Userform-Objekte zur Laufzeit erzeugen
22.08.2004 22:54:19
Thomas
Hallo Heike
Versuch mal das hier ...
Angenommen in "A1:E1" stet Name - Vorname - Straße - PLZ - Ort. Jetzt folgenden Code in's Klassenmodul der UF einfügen. Dann "A1:E1" selektieren und die UF öffnen. Sollte funzen.


      
Option Explicit
Const DISTANCE = 10&
Private Sub UserForm_Initialize()
    
    
Dim rng As Excel.Range
    
Dim ctl As MSForms.Label
    
Dim w As Long: w = DISTANCE
    
    
For Each rng In Selection
        
        
Set ctl = Me.Controls.Add("Forms.Label.1")
        
        
With ctl
            .Caption = rng.Value
            .Left = w
            .Top = DISTANCE
            .Width = 50
        
End With
        
        w = w + ctl.Width + DISTANCE
        
    
Next rng
    
End Sub 
Gruß
Thomas
Risi Thomas Softwareentwicklung
Anzeige
Vielen Dank
Heike
Hallo Thomas,
du hast mir sehr geholfen, wieder was gelernt, vielen Dank dafür.
@ Ulf, so kompliziert ist das doch gar nicht.
Liebe Grüsse Heike
AW: Vielen Dank
Ulf
Die Probleme kommen noch und somit weitere Fragen.
Ulf
;
Anzeige

Infobox / Tutorial

Userform-Objekte in Excel zur Laufzeit erzeugen


Schritt-für-Schritt-Anleitung

Um in Excel Userform-Objekte zur Laufzeit zu erzeugen, benötigst du grundlegende Kenntnisse in VBA. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

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

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen > UserForm.
  3. Füge den folgenden Code in das Klassenmodul des UserForms ein:

    Option Explicit
    Const DISTANCE = 10
    
    Private Sub UserForm_Initialize()
       Dim rng As Excel.Range
       Dim ctl As MSForms.Label
       Dim w As Long: w = DISTANCE
    
       For Each rng In Selection
           Set ctl = Me.Controls.Add("Forms.Label.1")
           With ctl
               .Caption = rng.Value
               .Left = w
               .Top = DISTANCE
               .Width = 50
           End With
           w = w + ctl.Width + DISTANCE
       Next rng
    End Sub
  4. Wähle die Zellen aus, die die Überschriften enthalten (z.B. A1:E1).

  5. Öffne das UserForm, um die Labels dynamisch zu erstellen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass du das richtige Kontrollobjekt (z.B. "Forms.Label.1") verwendest und dass das UserForm korrekt initialisiert wird.

  • Fehler: "Auswahl ist leer"
    Lösung: Überprüfe, ob du vor dem Öffnen des UserForms eine Zelle ausgewählt hast.


Alternative Methoden

Falls du ohne VBA arbeiten möchtest, kannst du die Labels auch zur Entwurfszeit im UserForm erstellen. Dies ist einfacher und erfordert keinen Code.

  1. Öffne das UserForm im Entwurfsmodus.
  2. Füge die benötigten Labels manuell hinzu und passe deren Eigenschaften an.

Praktische Beispiele

Ein praktisches Beispiel ist die Verwendung von Excel-Daten zur Erstellung eines dynamischen Reports. Du kannst die Spaltenüberschriften aus einer Tabelle in deinem UserForm darstellen. Dies eignet sich gut für Dashboard-Anwendungen, wo interaktive Elemente benötigt werden.


Tipps für Profis

  • Verwende Schleifen: Wenn du mehrere Objekte erstellen möchtest, sind Schleifen wie For Each besonders hilfreich.
  • Optimierung des Codes: Achte darauf, den Code so effizient wie möglich zu gestalten, um die Ladezeiten des UserForms zu minimieren.

FAQ: Häufige Fragen

1. Kann ich auch andere Steuerelemente zur Laufzeit erzeugen?
Ja, du kannst auch andere Steuerelemente wie TextBoxen oder Buttons ähnlich wie Labels hinzufügen.

2. Welche Excel-Version wird benötigt?
Die beschriebenen Schritte sind in Excel 2010 und höher anwendbar. Stelle sicher, dass du Zugriff auf den VBA-Editor hast.

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