Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: vorhandene Listbox um eine Spalte erweitern.

vorhandene Listbox um eine Spalte erweitern.
01.12.2014 09:02:53
Timo
Hallo,
beim Aufruf einer Userform wird Spalte 7 durchsucht und ohne doppelte Werte die Listbox gefüllt. Jetzt würde ich gerne über einen Button die Summe aus Spalte 8 zu jedem Eintrag aus Spalte 7 als zweite Spalte in der Listbox abbilden.
Wie kann ich das lösen?
Ich komme nicht weiter
Private Sub UserForm_Activate()
Dim hsh As Object
Dim i As Long
Set hsh = CreateObject("Scripting.Dictionary")
With Sheets("Daten_Satz")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
hsh(.Cells(i, 7).Text) = 0
Next
End With
With Me
.ListBox1.List = Application.Transpose(hsh.Keys)
End With
End Sub
Gruß
Timo

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vorhandene Listbox um eine Spalte erweitern.
01.12.2014 09:12:21
Christian
hallo Timo,
im Gegensatz zu einem Hash (wie zB. in Perl) erlaubt das Dictionary-Objekt keine Arrays als Key.
Wenn du die Werte in eine mehrspaltige Listbox per List übergeben willst, musst du daher vorher ein Array erzeugen.
Alternativ: Jeden Eintrag per AddItem einzeln in die Listbox schreiben.
Gruß
Christian

Anzeige
AW: vorhandene Listbox um eine Spalte erweitern.
01.12.2014 09:57:23
Timo
Hallo Christian,
danke für die schnelle Antwort.
Das mit dem Additem hatte versucht aber nicht hinbekommen.
Kann man mit Additem nur die zweite Spalte füllen?
Gruß
Timo

Bsp mit AddItem
01.12.2014 10:29:41
Christian
hallo Timo,
ein Bsp für AddItem. Bei großer Listen ist die List-Methode schneller als AddItem.
Option Explicit
Private Sub UserForm_Activate()
Dim objDic As Object
Dim i As Long
Dim strTxt As String
Dim vntKey
Set objDic = CreateObject("Scripting.Dictionary")
With Sheets("Daten_Satz")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
strTxt = .Cells(i, 7).Text
objDic(strTxt) = objDic(strTxt) + .Cells(i, 8).Value
Next
End With
With Me.ListBox1
For Each vntKey In objDic.Keys
.AddItem
.List(.ListCount - 1, 0) = vntKey
.List(.ListCount - 1, 1) = objDic(vntKey)
Next
End With
Set objDic = Nothing
End Sub
Gruß
Christian

Anzeige
AW: vorhandene Listbox um eine Spalte erweitern.
01.12.2014 10:42:52
Tino
Hallo,
versuch es mal so.
Private Sub UserForm_Activate()
Dim hsh As Object, ArData, ArErg()
Dim i As Long
Set hsh = CreateObject("Scripting.Dictionary")
With Sheets("Daten_Satz")
With .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).EntireRow
If .Rows(1).Row 
Gruß Tino
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige