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

2 textboxen je Matix

Forumthread: 2 textboxen je Matix

2 textboxen je Matix
hp
Hallo Spezialisten,
habe eine Userform mit Page 1-5 gebastelt.
Page 1-5 sind Produktgruppen.
Für jede Produktgruppe habe ich in einem Tabellenblatt in verschiedenen Spalten (a, e, i, m + q ab Zeile 2) die dazugehörigen Produkte.
Für jedes Produkt möchte ich bei Aufruf der Userform 2 Textboxen dynamisch in die Produktgruppen-Pages einfügen.
Die Textfelder links sollen die Namen der Produkte enthalten, die zweiten Textfelder sollen rechts neben den Produkten erscheinen, um einen Preis einzugeben.
Die Länge der Produktlisten kann varieren.
Wie schaffe ich es die Textfelder der Produkte inklusive der leeren Textfelder automatisch zu generieren?
Wäre echt froh, wenn jemand mir auf die Sprünge hilft.
Vielen Dank für eure Mühe
Gruß/hp
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
vielleicht so
04.08.2010 20:20:01
Tino
Hallo,
wenn ich Dich richtig verstanden habe, spielt nur die Spalte A eine Rolle.
Private Sub UserForm_Initialize()
Dim oTxT As Control
Dim oPage As MSForms.Page
Dim rngRange As Range, rngCell As Range
Dim sngTop As Single

'Page angeben 
Set oPage = MultiPage1.Pages(0)

'Tabelle angeben 
With Tabelle1
    'Bereich angeben 
    Set rngRange = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
    
    'Schleife über Bereich 
    For Each rngCell In rngRange.Columns(1).Cells
        'TxT Box 1 erstellen 
        Set oTxT = oPage.Controls.Add("Forms.TextBox.1")
        oTxT.Top = 5 + sngTop: oTxT.Left = 5
        oTxT.Width = 90: oTxT.Height = 18
        'Wert eintragen 
        oTxT = rngCell.Value
        
        'TxT Box 2 erstellen 
        Set oTxT = oPage.Controls.Add("Forms.TextBox.1")
        oTxT.Top = 5 + sngTop: oTxT.Left = 100
        oTxT.Width = 90: oTxT.Height = 18
        
        'Höhe merken für nächste TxT 
        sngTop = oTxT.Top + oTxT.Height
    Next rngCell

End With

End Sub
Gruß Tino
Anzeige
Zusatz...
04.08.2010 20:28:33
Tino
Hallo,
sind es mehr TxT- Boxen, so dass diese nicht in die Page passen,
ergänzen nach der Schleife den Code durch diese Zeilen.
    If sngTop + 5 > oPage.InsideHeight Then
oPage.ScrollBars = fmScrollBarsVertical
oPage.ScrollHeight = sngTop + 5
End If
Gruß Tino
Anzeige
AW: Zusatz...
05.08.2010 09:59:23
hp
Hallo Tino,
vielen Dank, das ging ja zügig. Habe noch 3 Problemchen.
1. Wenn ich das Makro ausführe, stoppt er bei "Dim oTxT As Control". Als Fehler sagt er, das der Benutzerdefinierte Typ nicht definiert ist...
Muß ich vor "With" nicht auch einen Set otxt = ? eingeben?
2. Leider muss ich Produkte aus 5 verschiedenen Spalten auslesen. Diese haben unterschiedlich viele Einträge
"Set rngRange = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))" gibt dann aber immer die maximale Anzahl Zeilen. "For each..." müsste irgendwie die leeren Zellen ignorieren.
3. Aus den 5 Spalten mit den Produkten (A, E, I, M, Q)sollte die Produktgruppe aus der ersten Zelle der Spalte in die Beschriftung der 5 Pages übernommen werden. Die otxt müssen dann je Spalte auf den richtigen Pages erscheinen.
Entschuldige bitte wenn dies in meiner ersten Anfrage nicht so klar war.
Danke und Gruß/hp
Anzeige
lade mal ein Bsp.
05.08.2010 11:01:25
Tino
Hallo,
verstehen den Aufbau noch nicht richtig.
Gruß Tino
AW: lade mal ein Bsp.
05.08.2010 11:24:27
hp
Hallo Tino,
hier ein Beispiel. https://www.herber.de/bbs/user/70906.xls
Da es sich um Firmeninterne Daten handelt, habe ich die Inhalte durch Zahlen ersetzt.
Danke und Gruß/hp
Anzeige
AW: müsste funktionieren...
05.08.2010 13:42:18
hp
Hallo Tino,
das ist der Wahnsinn! Hätte nie gedacht, dass ich so schnell ein funktionierendes Programm nutzen könnte. Zudem ist das Modul extrem kurz.
Vielen, vielen Dank für deine Mühe.
Gruß/hp
Anzeige
Userform - Multipage - Listboxen
05.08.2010 13:55:21
fcs
Hallo hp,
Alternativvorschlag mit Nutzung einer Listbox je Page statt vielen Textboxen.
Preiseingabe des selektierten Produkts erfolgt in einer Textbox.
Eingaben in ein Userform müssen ja auch irgendwie verarbeitet bzw. in Tabellen zurückgeschrieben werden.
Da sind Listboxen wesenlich einfacher in der Programmierung als eine Vielzahl an Textboxen.
Gruß
Franz
https://www.herber.de/bbs/user/70917.xls
Anzeige
kleine Erweiterung
05.08.2010 14:08:06
Tino
Hallo,
wahrscheinlich möchtest Du die leere TxT- Box auch ausgeben,
dies kann man mit einer weiteren Codezeile erreichen.
Jetzt wird der eingetragene Wert in die Spalte 'Sortierung' eingetragen.
https://www.herber.de/bbs/user/70919.xls
Gruß Tino
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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