Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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 Spalte aktualisieren

ListBox Spalte aktualisieren
02.12.2013 19:15:01
Timo
Hallo zusammen,
ich habe ein Problem mit einer ListBox in einer UserForm.
Meine ListBox hat 9 Spalten.
Die ListBox wird über einen Makro gefüllt und hat dann je nach Suchergebnissen eine unterschiedliche Anzahl von Einträgen.
Jetzt möchte ich gerne, dass die Spalte 5 der ListBox z.B. über einen Button aktualisiert werden kann, ohne, dass die komplette Listbox neu eingelesen wird.
In Spalte 9 der ListBox steht immer die Zeilennummer des Wertes von Spalte 5 und in einer anderen ListBox in Spalte 7 steht immer die Spaltennummer von dem Wert in Spalte 5 der zu aktualisierenden ListBox. Somit hätte ich ja die Zellangabe des Wertes, der in Spalte 5 auftauchen soll.
Ich stelle mit das so vor, dass man das in einer Art Schleife macht.
Spalte = Me.ListBox1.Column(7)
Zeile = Me.ListBox2.Column(9)
Jetzt soll vom ersten Eintrag der ListBox2 die Spalte 5 aktualisiert werden.
Dann soll vom zweiten Eintrag der ListBox2 die Spalte 5 aktualisiert werden.
Dann von dritten, dann vom vierten usw. bis das Ende der ListBox2 erreicht ist.
Somit müsste dann die ListBox aktuell sein.
Kann mir da jemand helfen? Ich habe da leider sehr wenig Erfahrung.
Danke und viele Grüße
Timo

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox Spalte aktualisieren
02.12.2013 20:10:02
Timo
Ich habe inzwischen selbst noch ein bisschen experimentiert, und folgenden Versuch gestartet:
Sub Test_Box()
Dim lngI As Long
Dim lngZ As Long
Dim lngS As Long
lngS = Me.ListBox1.Column(7)
lngZ = Me.ListBox2.Column(9)
With Me.ListBox2
For lngI = 0 To Me.ListBox2.ListCount - 1
ListBox2.Column(5) = ThisWorkbook.Worksheets("Tabelle1").Cells(lngZ, lngS).Value
Next
End With
End Sub
Leider wird immer nur die aktuell markierte Zeile aktualisiert und nicht die komplette ListBox durchlaufen. Hat jemand eine Idee?
Gruß Timo

AW: ListBox Spalte aktualisieren
02.12.2013 21:41:00
Martin
Hallo Timo,
ich habe gerade kaum Zeit (nur solange meine Frau telefoniert), aber das Zauberwort heißt "List". So sollte das Durchlaufen der ListBox klappen:
Sub Test_Box()
Dim lngI As Long
Dim lngZ As Long
Dim lngS As Long
lngS = Me.ListBox1.Column(7)
lngZ = Me.ListBox2.Column(9)
With Me.ListBox2
For lngI = 0 To Me.ListBox2.ListCount - 1
'ListBox2.Column(5) = ThisWorkbook.Worksheets("Tabelle1").Cells(lngZ, lngS).Value
ListBox2.List(lngI, 5) = ThisWorkbook.Worksheets("Tabelle1").Cells(lngZ, lngS). _
Value
Next
End With
End Sub
Aber so wird in jede Zeile der selbe Wert geschrieben, weil in deiner Schleife die Variablen lngS und lngZ unverändert bleiben.
Viele Grüße
Martin

Anzeige
AW: ListBox Spalte aktualisieren
02.12.2013 22:03:53
Timo
Hallo Martin,
vielen Dank für Deine Rückantwort.
Da war ich ja schon auf dem richtigen Weg :)
Mit Deinem Code wird die ListBox durchlaufen.
Das überall der selbe Wert eingetragen wird, habe ich schon befürchtet.
Leider habe ich absolut keine Idee, wie man das ändern kann.
Kann mir da bitte noch jemand helfen?
Viele Grüße
Timo

AW: ListBox Spalte aktualisieren
02.12.2013 22:56:51
Martin
Hallo Timo,
jetzt habe ich etwas mehr Zeit. Offen gesagt komme ich mit deiner Problembeschreibung nicht kar. Vermutlich hat dir noch kein anderer geantwortet, weil niemand so recht versteht was du möchtest. Kannst du nicht einfach eine Vorlage hochladen und/oder exakt(!) beschreiben was du möchtest? Zum Beispiel ist mir völlig unklar, ob beide ListBoxen die gleiche Anzahl an Zeilen enthalten (...davon gehe ich jetzt einfach mal aus). Ich mache nun einen Versuch ins Blaue, der dir vermutlich nicht weiterhelfen wird:
Sub Test_Box()
Dim lngI As Long
Dim lngZ As Long
Dim lngS As Long
With ListBox2
For lngI = 0 To .ListCount - 1
lngS = ListBox1.List(lngI, 7)    'Spaltennr aus ListBox1
lngZ = .List(lngI, 9)            'Zeilenr aus ListBox2
.List(lngI, 5) = ThisWorkbook.Worksheets("Tabelle1").Cells(lngZ, lngS).Value
Next
End With
End Sub
Viele Grüße
Martin

Anzeige
AW: ListBox Spalte aktualisieren
03.12.2013 17:54:49
Timo
Hallo,
vielen Dank für Eure Hilfe.
Zur Frage von Martin: Die ListBox1 (aus der die Spaltennummer kommt) hat nicht die gleiche Anzahl an Einträgen wie die ListBox2, die aktualisiert werden soll.
In ListBox1 wird ein Eintrag markiert, und von dem soll dann die Spaltennummer genommen werden, die ja in Spalte 7 der ListBox steht.
Dann läuft die Schleife durch und ListBox2 wird aktualisiert.
Ich habe jetzt folgenden Code zusammengebastelt:
Sub Test_Box()
Dim lngI As Long
Dim lngZ As Long
Dim lngS As Long
lngS = Me.ListBox1.Column(7)
With ListBox2
For lngI = 0 To .ListCount - 1
lngZ = .List(lngI, 9)            'Zeilenr aus ListBox2
.List(lngI, 5) = ThisWorkbook.Worksheets("Tabelle1").Cells(lngZ, lngS).Value
Next
End With
End Sub
Es scheint auch zu funktionieren. Es wäre aber schön, wenn Ihr trotzdem mal drüberschauen würdet, ob der Code so i.O. ist bzw. überhaupt Sinn macht.
Vielen Dank und viele Grüße
Timo

Anzeige
Vielleicht, klappts so?
03.12.2013 12:50:45
EtoPHG
Timo,
Du weisst mit obigen Code allen ListItems den gleichen Wert zu, da du ja die Zeilen/Spalten der Quellen-Zelle nicht änderst.
Vielleicht klappts ja so:
Sub Test_Box()
Dim ws1 As Worksheet
Dim lngI As Long
Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
With ListBox2
For lngI = 0 To Me.ListBox2.ListCount - 1
ListBox2.List(lngI, 5) = ws1.Cells(CLng(ListBox2.List(lngI, 9)), _
CLng(ListBox1.List(lngI, 7)))
Next
End With
End Sub
Gruess Hansueli

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige