Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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

ListBox in eine Zeile

ListBox in eine Zeile
abu
Hallo Zusammen,
mochte gerne Daten in einer ListBox mit mehreren Spalten auf eine UserForm darstellen.
Ueber Textboxen soll die ausgewaehlte Zeile in TextBoxen geladen werden um sie editieren zu koennen.
Anschliessend wieder zurueck. Soweit so gut.
Nun meine Frage: Wie bekomme ich die einzelnen Zeilen der ListBox in eine Zeile und wieder zurueck?
z.b.: ListBox1 hat 5 Spalten. Die erste Zeile soll nach A1-A5, die zweite Zeile nach A6-A10 usw.
Hoffe das mir jemand helfen kann.
Beste Gruesse
Abu

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ListBox in eine Zeile
14.10.2010 17:19:11
Tino
Hallo,
merke Dir den Index in einer Variablen und anhand dieses Index
kannst Du den Datensatz wieder zurückschreiben.
Lesen
Textbox1 = .List(intIndex, 0)
Textbox2 = .List(intIndex, 1)
Schreiben
.List(intIndex, 0) = Textbox1
.List(intIndex, 1) = Textbox2
Gruß Tino
Frage uebersehen?
15.10.2010 08:40:16
abu
Hallo Tino,
wieder einmal Danke das Du dir mein Problem angeschaut hast.
Du hast glaube ich aber nicht meinen Beitrag zu ende gelesen. Das mit dem editieren bekomme ich hin. Mein Problem liegt hier:
Nun meine Frage: Wie bekomme ich die einzelnen Zeilen der ListBox in eine Zeile und wieder  _
zurueck?
z.b.: ListBox1 hat 5 Spalten. Die erste Zeile soll nach A1-A5, die zweite Zeile nach A6-A10 usw.
Mein Problem ist ich hab fuer einen Datensatz immer nur eine Zeile. Oder siehst Du eine besser Loesung fuer mein Problem (ausser Access)...?
Beste Gruesse
Abu
Anzeige
AW: Frage uebersehen?
15.10.2010 09:15:44
Tino
Hallo,
könnte so gelöst werden.
Private Sub CommandButton1_Click()
Dim lngRow&, lngCol&, nCount&
Dim ArrayData()
With ListBox1
    Redim ArrayData(1 To .ListCount * .ColumnCount, 1 To 1)
    For lngRow = 0 To .ListCount - 1
        For lngCol = 0 To .ColumnCount - 1
            nCount = nCount + 1
            ArrayData(nCount, 1) = .List(lngRow, lngCol)
        Next lngCol
    Next lngRow
End With


Range("A1").Resize(Ubound(ArrayData)) = ArrayData

End Sub
Gruß Tino
Anzeige
Ich hab mich falsch ausgedrueckt
15.10.2010 10:33:05
abu
Hallo Tino,
ich Idiot hab mich falsch ausgedrueckt. Ich brauch ja alles in einer Zeile also:
1. Zeile von Listbox in A1:E1, 2. Zeile in Listbox F1:J1, usw
also wenn ich den Code richtig verstehe (was meist nicht der Fall ist) dann werden die Werte der Listbox in ein mehrdimensionales Array geschrieben.
Und hiermit ins Tabellenblatt geschrieben: Range("A1").Resize(Ubound(ArrayData)) = ArrayData
Wenn ich jetzt hingehe und als Beispiel Range("A1:K1").Resize(Ubound(ArrayData)) = ArrayData schreibe, dann macht er totalen Bloedsinn und gibt die Fehlermeldung Overflow aus.
Da ich auch nicht weiss wie viele Zeilen in der Listbox stehen weiss ich sowieso nicht wie gross das Range sein muss. Ausserdem hab ich das Problem das nicht immer alle Felder in der Listbox belegt sind und nach und nach erst vervollstaendigt werden. Womit ich dann ein Problem beim einlesen habe wenn man es mit freien Zellen loesen will....
Koenntest Du vllt. noch mal drueber schauen und mir auch ein Ansatz geben fuers einlesen.
Gruesse Abu
ps. Kann ich nicht einfach sagen A1:E1 ist immer fuer die erste Zeile der Listbox und F1:J1 immer fuer die 2 Zeile der Listbox, usw egal ob da was drinne steht oder nicht?
Anzeige
AW: Ich hab mich falsch ausgedrueckt
15.10.2010 10:40:13
Tino
Hallo,
mach aus der besagten Zeile diese.
Range("A1").Resize(, UBound(ArrayData)) = Application.Transpose(ArrayData)
Gruß Tino
Zurueck in Userform und Overflow
15.10.2010 13:41:38
abu
Hallo Tino,
danke das wars. Nun schreibt er mir die Werte alle in eine Zeile.
Aber wie hole ich diese wieder ab und lade sie in meine Listbox.
Ausserdem bekomme ich nun immer den Fehler 'Overflow'. Hab den Code auch schon wieder rausgenommen aber der Fehler bleibt.... Hab zwar noch ein Back up, ist aber leider 2 tage alt...
Gruss Abu
kenne eine Beispieldatei oT.
15.10.2010 14:05:16
Tino
?
15.10.2010 14:07:37
abu
Bin nicht so der Forenschreiber, was meinst du damit?
AW: ?
15.10.2010 14:25:33
Tino
Hallo,
ich meine lade mal ein Beispiel hoch wo dieser Fehler auftritt.
Gruß Tino
Anzeige
Datei
15.10.2010 15:37:02
abu
Hallo Tino,
Ich glaube Excel will mich verar..... Datei war zu gross, dann hab ich sie gezippt fuer den Upload und nun funzt sie wieder. Also Problem geloest.
Bleibt nur noch die Frage wie ich die Daten aus dem Blatt hole und in die Listbox lade.
Gruss
Abu
AW: Datei
15.10.2010 16:39:01
Tino
Hallo,
dies könnte man so machen.
Code in Userform
Dim ArrayData, NewArray()
Dim nCount&, nCol&, nRow&

With Tabelle1 'Tabelle angeben 
    ArrayData = .Range("A1", .Cells(1, .Columns.Count).End(xlToLeft))
End With

With ListBox1
    .ColumnCount = 4 'Spalten einstellen oder fest vergeben 
    Redim Preserve NewArray(1 To .ColumnCount, 1 To Ubound(ArrayData, 2))
    For nCount = 1 To Ubound(ArrayData, 2)
        If .ColumnCount = nCol Then nCol = 0
        nCol = nCol + 1
        If nCol = 1 Then nRow = nRow + 1
        NewArray(nCol, nRow) = ArrayData(1, nCount)
    Next
    Redim Preserve NewArray(1 To .ColumnCount, 1 To nRow)
    .List = Application.Transpose(NewArray)
End With
Gruß Tino
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige