Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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 Spalten clearen

Listbox Spalten clearen
13.11.2023 11:23:17
Reaper
Hi,

kurze Frage. ist es möglich in einer Listbox die Werte in einer bestimmten Spalte(n) zu löschen?

ich habe ein Listbox mit derzeit 4 Spalten die aus 2 unterschiedlichen Tabellen befüllt werden

z.b. Listbox1: Spalte 1 und 2 = Tabelle1.Spalte 1 und Spalte 4 und Listbox1: Spalte 3 und 4 = Tabelle2.Spalte 1 und Spalte 7

jetzt würde ich es gerne so lösen, dass wenn über ein Suchfeld (Textbox) ein Wert eingegeben wird, die Werte in den Spalten 1 und 2 in der Listbox gelöscht (clearen) werden und anhand des Suchwertes neu befüllt werden ohne die Spalten 3 und 4 in der Listbox zu beeinnflussen.

Ich würde ungern mit 2 Listboxen arbeiten

Finde zwar in Internet viele Ansätze aber nicht das was ich suche.

vielen Dank im Voraus

mfg
Reaper




12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox Spalten clearen
13.11.2023 12:21:58
Alwin Weisangler
Hallo Reaper,

beispielhaft für die 3. Spalte alle Werte raus, wäre so:


With ListBox1
For i = 0 To .ListCount - 1
.List(i, 2) = ""
Next i
End With


Gruß Uwe
AW: Listbox Spalten clearen
16.11.2023 22:59:22
Uduuh
Hallo,
ich habe ein Listbox mit derzeit 4 Spalten die aus 2 unterschiedlichen Tabellen befüllt werden

und wie füllst du die Listbox?

Lade mal die Mappe hoch.

Gruß aus'm Pott
Udo
AW: Listbox Spalten clearen
17.11.2023 14:24:23
Reaper
Hi Udo,

Hab mal schnell ne Beispielmappe zusammengebastelt.

https://www.herber.de/bbs/user/164397.xlsm

Gruß
Reaper

Anzeige
sowohl der Sinn, ...
17.11.2023 22:16:26
Uduuh
... als auch das Datenkonzept sind mir schleierhaft.
Ich hab auch weder die Lust noch die Zeit, das zu analysieren.

Gruß aus'm Pott
Udo
AW: sowohl der Sinn, ...
19.11.2023 22:25:39
Reaper
Hi Udo,

Ich habe schlichtweg gefragt, ob es möglich ist in einer mehrspaltigen Listbox einzelne (zuvor deklarierte) Spalten zu clearen um sie anschließend über diverse Kriterien wieder neu zu befüllen ohne die Werte in anderen Spalten direkt in Mitleidenschaft zu ziehen. Gemäß Uwe wäre das über ein erstellen eines temporären Arrays möglich, worauf ich angefragt hatte, ob es möglich wäre in diesem Punkt mir etwas Hilfestellung zu geben.
Auf Deine Anfrage hin, wie ich denn die Daten in die Listbox lade mit Bezug auf eine Beispielmappe, habe ich dieses getan und eine einfache Mappe mit Phantasiedaten erstellt, welche aufzeigt wie ich das mache. Da es sich im eigentlichen um aus weit mehr und komplexere Daten handelt sollte eigentlich jedem klar sein.

Ich weiß nicht was du mit deinem letzten Post bezwecken willst, aber solche konstruktivlosen Statements wie "Ich hab auch weder die Lust noch die Zeit, das zu analysieren" sind für Hilfesuchenden einfach nutzlos. Ich glaube es wäre besser gewesen, wenn du Dich einfach diesem Thread enthalten hättest.

Vielleicht gibt es hier ja noch jemanden der sich dieser Herausforderung annimmt, sofern es keine komplexeren Ausmaße annimmt.

mfg
Reaper

Anzeige
AW: Listbox Spalten clearen
14.11.2023 11:07:44
Reaper
Hi Uwe,

Danke für deine schnelle Antwort. Den Code den Du geposted hast, habe ich auch schon in mehreren Varianten ausprobiert, aber ist für mich nicht zielführend, da hier die vorhandenen Werte einfach durch "nichts" ersetzt werden.
Sprich:
Ich öffne die UF und es werden zb. Daten in Spalte 1-4 , Zeile 1-10 eingelesen. Wenn ich jetzt über das Suchfeld (Textbox) bestimmte Werte eingebe, soll die Spalte 1-2 gecleart werden damit anschließend dort die neuen Daten eingelesen werden können. Wenn ich deinen Code in der Prozedur voran stelle, werden zwar in Spalte 1 und 2 die Daten durch nichts ersetzt, so das es den Anschein hat die Spalten leer wären, aber in der fortlaufenden Prozedur werden hier die neuen Daten einfach in Spalte 1-2 ab Zeile 11 ergänzt. Heißt in der UF ist die Spalte 1-2, Zeile 1-10 ist leer und Zeile 11-21 enthält die neuen Daten.

Es müsste vom Prinzip hier eine Art "RemoveItem" oder "Clear" Variante her. Ähnlich wie zb. " .Columns("A:B").clear "

viel Grüße
Reaper
Anzeige
AW: Listbox Spalten clearen
14.11.2023 12:37:40
Alwin Weisangler
Hallo Reaper,

es gibt diesen Befehl dafür nicht, was auch so sinnvoll und richtig ist.
Was man machen kann, ist vor dem Laden der Listbox die Werte in einem Array laden und halten also Public.
Das entfernen einer Spalte kann man dann mittels Übergabe der zu erhaltenen Spalten in ein temporäres Array, entsprechend dimensioniert, vornehmen und dann aus Diesem die Listbox neu füllen. Damit ist diese Spalte aus der Listbox entfernt. Will man dies rückgängig machen, lädt man das Public Array in die Listbox.

Gruß Uwe

AW: Listbox Spalten clearen
20.11.2023 10:00:45
Alwin Weisangler
Hallo Reaper,

ich habe eben gesehen, dass du eine Datei hochgeladen hattest. Da für außenstehende vieles sich nicht so recht herleiten lässt braucht es weitere Erklärungen.
Anbei mal in einem neuen Userform das Einlesen in Comboboxen der Spieler und den dazugehörigen Spalteninhalt.
Da der Thread in Kürze geschlossen wird macht es Sinn einen Neuen zu diesem Thema zu eröffnen.
https://www.herber.de/bbs/user/164444.xlsm
Gruß Uwe
Anzeige
AW: Listbox Spalten clearen
20.11.2023 22:19:10
Reaper
Hi Uwe,

Danke für Deine Antwort und Mühen. Ich werd mal bissl damit rum experimentieren, sieht vielversprechend aus. Vielleicht krieg ich ja was hin, ansonsten werd ich mich nochmal melden.

mfg
Reaper

AW: Listbox Spalten clearen
21.11.2023 09:59:07
Alwin Weisangler
Hallo Reaper,

anbei mal ein Übergabeweg in die Listbox, wie ich es machen würde.


Option Explicit
Dim arrLB()

Private Sub ComboBox1_Change()
Dim sortList As Object, arrList As Object
Dim arr(), arrTmp, i&
Set sortList = CreateObject("System.Collections.SortedList")
Set arrList = CreateObject("System.Collections.ArrayList")
arr = Tabelle1.ListObjects(1).DataBodyRange.Columns(ComboBox1.ListIndex + 2).Value
For i = 1 To UBound(arr)
If arr(i, 1) > "" Then
sortList(arr(i, 1)) = ""
End If
Next i
arrList.AddRange sortList.keys
With ComboBox2
.Clear
.AddItem "-- Alles --"
For i = 0 To sortList.keys.Count - 1
.AddItem arrList(i)
Next i
End With
If ComboBox2.ListIndex = -1 Then ListBox1.Clear
End Sub

Private Sub ComboBox2_Change()
Dim i&, j&, iLevel&, rngLevel As Range
With Tabelle1
If ComboBox2 = "-- Alles --" Then
ReDim arrLB(1 To .ListObjects(1).DataBodyRange.Rows.Count, 1 To 4)
For i = 1 To UBound(arrLB)
arrLB(i, 1) = .ListObjects(1).DataBodyRange.Cells(i, 1)
arrLB(i, 2) = .ListObjects(1).DataBodyRange.Cells(i, ComboBox1.ListIndex + 2)
arrLB(i, 3) = .ListObjects(2).DataBodyRange.Cells(i, 1)
arrLB(i, 4) = .ListObjects(2).DataBodyRange.Cells(i, ComboBox1.ListIndex + 2)
Next i
Else
If ComboBox2.ListIndex = -1 Then
ListBox1.Clear
Exit Sub
End If
For i = 1 To .ListObjects(1).DataBodyRange.Rows.Count
If ComboBox2 = .ListObjects(1).DataBodyRange.Cells(i, ComboBox1.ListIndex + 2).Text Then j = j + 1
Next i
ReDim arrLB(1 To j, 1 To 4)
j = 0
For i = 1 To .ListObjects(1).DataBodyRange.Rows.Count
If ComboBox2 = .ListObjects(1).DataBodyRange.Cells(i, ComboBox1.ListIndex + 2).Text Then
j = j + 1
arrLB(j, 1) = .ListObjects(1).DataBodyRange.Cells(i, 1)
arrLB(j, 2) = .ListObjects(1).DataBodyRange.Cells(i, ComboBox1.ListIndex + 2)
arrLB(j, 3) = .ListObjects(2).DataBodyRange.Cells(i, 1)
arrLB(j, 4) = .ListObjects(2).DataBodyRange.Cells(i, ComboBox1.ListIndex + 2)
End If
Next i
End If
End With
ListBox1.List = arrLB
End Sub

Private Sub UserForm_Initialize()
Dim i&
With Tabelle1.ListObjects(1)
For i = 2 To .DataBodyRange.Columns.Count
ComboBox1.AddItem .HeaderRowRange(i).Value
Next i
End With
End Sub

https://www.herber.de/bbs/user/164472.xlsm

Gruß Uwe
Anzeige
AW: Listbox Spalten clearen
21.11.2023 13:24:34
Reaper
Hi Uwe,

vielen Dank für Deine Mühen. Das sieht sehr gut. Noch ein paar Anpassungen und es passt.

mfg
Reaper
AW: Listbox Spalten clearen
16.11.2023 21:54:39
Reaper
Hi Uwe,

ok Danke für die Antwort. Könntest Du mir Hilfestellung geben wie ich das eventuell umsetzen könnte. Das mit dem Array public setzen ?

viele Grüße
Reaper

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige