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

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

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

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige