Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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
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
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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige