Anzeige
Archiv - Navigation
812to816
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
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mehrspaltige Listbox auf Tabellenblatt füllen

Mehrspaltige Listbox auf Tabellenblatt füllen
19.10.2006 08:38:20
heiko
Hallo Experten,
ich möchte 4 Spalten einer Listbox auf einem Tabellenblatt mit Werten
aus einer SQL Abfrage füllen.
In Userforms habe ich das immer mit folgendem Code hinbekommen.
'----------------------------------------------------------------------
Worksheets("XXX").LB1.ColumnCount = 4
Worksheets("XXX").LB1.ColumnWidths = ("2 cm;2,0 cm;3,5 cm;3,0 cm;")
Worksheets("XXX").LB1.List(i, 0) = .Fields!Wert1
Worksheets("XXX").LB1.List(i, 1) = .Fields!Wert2
Worksheets("XXX").LB1.List(i, 2) = .Fields!Wert3
Worksheets("XXX").LB1.List(i, 3) = .Fields!Wert4
'-----------------------------------------------------------------------
Bei der Listbox auf meinem Tabellenblatt funktioniert es nicht.
Kann mir bitte jemand helfen.
Vielen Dank.
Bst Grüße
Heiko

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrspaltige Listbox auf Tabellenblatt füllen
19.10.2006 09:34:35
Peter
Hallo Heiko,
so könnte es gehen:
Public

Sub Liste_erstellen()
Dim lletzte  As Long
Dim lZeile   As Long
Dim iLibox   As Integer
lletzte = IIf(Range("A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
With ActiveSheet.ListBox1
.ColumnCount = 2
For lZeile = 2 To lletzte
.AddItem
.List(iLibox, 0) = Cells(lZeile, 1).Value
.List(iLibox, 1) = Cells(lZeile, 2).Value
iLibox = iLibox + 1
Next lZeile
End With
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Mehrspaltige Listbox auf Tabellenblatt füllen
19.10.2006 11:33:43
hEIKO
Hallo Peter,
Danke füe Deine Nachricht.
Also, Dein Code funktiniert in einer neuen Arbeitsmappe.
Sobald ich diesen aber im Code der Datenbankabfrage nutzen will,
kommt die Fehlermeldung: "Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftsfeldes ungültig!"
Ich habe etwa folgenden Code
With Connection ...
With Recordset ...
Call . Open(SQL_STR, Connection)
Do While Not EOF
outstr = CStr(.Fields!ARTNR)
ActiveSheet.LISTE_ARTIKEL.ColumnCount = 2
ActiveSheet.LISTE_ARTIKEL.ColumnWidths = ("1,8 cm;1,0 cm")
ActiveSheet.LISTE_ARTIKEL.AddItem
----------------------------------------------------
ActiveSheet.LISTE_ARTIKEL.List(i, 1) = outstr ' ********** hier kommt Fehler
----------------------------------------------------
Loop
End With
End With
Das Makro steigt an dieser Stelle "ActiveSheet.LISTE_ARTIKEL.List(i, 1) = outstr"
aus.
Hast Du noch eine Idee ?
VH
Heiko
Anzeige
AW: Mehrspaltige Listbox auf Tabellenblatt füllen
19.10.2006 13:13:39
Peter
Hallo Heiko,
ich bin erst gerade wieder an den PC gekommen.
Ich würde erstmal eine MsgBox outstr einbauen, um zu sehen, was in outstr enthalten ist.
Eine bessere Idee habe ich z. Zt. nicht - leider.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Mehrspaltige Listbox auf Tabellenblatt füllen
19.10.2006 13:17:24
Peter
Hallo Heiko,
bei mir läuft eine SQL-Abfrage so:
Do While RecSet.EOF = False
UserForm2.ListBox1.AddItem " "
If RecSet.Fields.Item(0).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 0) = RecSet.Fields.Item(0).Value
End If
If RecSet.Fields.Item(1).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 1) = RecSet.Fields.Item(1).Value
End If
If RecSet.Fields.Item(2).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 2) = RecSet.Fields.Item(2).Value
End If
If RecSet.Fields.Item(3).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 3) = RecSet.Fields.Item(3).Value
End If
If RecSet.Fields.Item(4).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 4) = RecSet.Fields.Item(4).Value
End If
If RecSet.Fields.Item(5).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 5) = RecSet.Fields.Item(5).Value
End If
If RecSet.Fields.Item(6).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 6) = RecSet.Fields.Item(6).Value
End If
If RecSet.Fields.Item(7).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 7) = RecSet.Fields.Item(7).Value
End If
If RecSet.Fields.Item(8).Value "" Then
UserForm2.ListBox1.List(iLiBoIndx, 8) = RecSet.Fields.Item(8).Value
End If
iLiBoIndx = iLiBoIndx + 1
RecSet.MoveNext
Loop
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Mehrspaltige Listbox auf Tabellenblatt füllen
19.10.2006 13:31:15
Heiko
HAllo Peter,
meine SQL Abfrage läuft denn wenn ich
ActiveSheet.LISTE_ARTIKEL.AddItem = .Fields!ARTNR & chr(9) & .Fields!ANZAHL
benutzte, dann funktioniert es.
Ich helfe mit im Momment mit einem Tabulator zwischen den Spalten.
Nur wenn ich mit
ActiveSheet.LISTE_ARTIKEL.List(i, 1) = ... arbeite
kommt der Fehler.
Es muss an dem "... .List(i, 1)= ..." liegen.
Gruß Heiko
AW: Mehrspaltige Listbox auf Tabellenblatt füllen
19.10.2006 14:28:39
Peter
Hallo Heiko,
bist du deinen Code einmal mit Debuggen - Einzelschritt durchgegangen und hast dir angesehen, was z. B. in deiner Variablen i eeeenthalten ist?
Ist i tatsächlich Null beim ersten Durchlauf?
Und warum steht bei dir i, 1 und nicht i, 0 für die erste Spalte?
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Mehrspaltige Listbox auf Tabellenblatt füllen
20.10.2006 08:40:06
Heiko
Hallo Peter,
es funktioniert. i war im ersten Druchlauf 1.
Vielen Dank für Deine Hilfe.
Beste Grüße
Heiko

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige