Prüfungen sind deshalb so scheußlich, weil der größte Trottel mehr fragen kann, als der klügste Mensch zu beantworten vermag.

Ein HALLO und DANKESCHÖN für deinen Support über die Alpen,

bei uns bläst der Wind bei ca. 19 Grad und im WWW finde ich nicht die korrekte Lösung,
wie man in einem Listenfeld eines Formulars die Spaltenkopfinformationen setzt.

Also unter:

Private Sub UserForm_Initialize()

findest du schon Mal den VBA, auch die Zeile ColumnHeads = True

aber das i-Tüpfelchen nicht, wie man die Daten aus dem Bereich A1:D1 des Tabellenblattes „Material Data“ übernimmt, fehlt mir noch.
Die Lösungen des WWW führten leider nicht zum Erfolg.
Dankeschön & Gruß
Jürgen

Hallo Jürgen,

so geht es:

du musst einen Bereich definieren (mit Überschrift).

Und die Adresse (also $A$1:$D$14) an die RowSource übergeben.

Leider verlangt VBA die Adresse vom aktiven Blatt. Also muss man wechseln – möglicherweise am Ende wieder zurück:

    With Me.LB_Entries

        .ColumnHeads = True

        Worksheets(„Material Data“).Activate

        .RowSource = xlBereich.Address

    End With

Den kompletten Code in deinem Beispiel findest du in der zweiten Userform:

    Set xlBereich = Worksheets("Material Data").Range("A1").CurrentRegion
    Set xlBereich = xlBereich.Offset(1, 0).Resize(xlBereich.Rows.Count - 1, xlBereich.Columns.Count)
    
    With Me.LB_Entries
        .ColumnHeads = True
        Worksheets("Material Data").Activate
        .RowSource = xlBereich.Address
    End With

Liebe Grüße

Rene


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.