Listbox vullen

Status
Niet open voor verdere reacties.

pkuipers

Gebruiker
Lid geworden
8 jul 2014
Berichten
97
Hallo allemaal,
Ik wil in een listbox 2 kolommen vullen met de volgende gegevens:
Regel 0, kolom 0: strNaam , intBedrag
Nu komt de strnaam uit een listbox met de volgenden code:
Code:
sn = Sheets("Beslissingen").Range(strRange)
    With CreateObject("System.Collections.ArrayList")
    intLusTeller = intTeller
    For Each cl In sn
        If cl <> "" And Not .contains(cl) And ActiveSheet.Cells(intLusTeller, "H") = intZoek _
                            And ActiveSheet.Cells(intLusTeller, "E") = intJaar And ActiveSheet.Cells(intLusTeller, "L") > 0 Then .Add cl
                        
        intLusTeller = intLusTeller + 1
        Next
        .Sort
        
        intTotaal = .Count
        If intTotaal > 0 Then
            lstBegunstigers.List = Application.Transpose(.toarray())
            intAantal = lstBegunstigers.ListCount
        End If
        End With
intAantal zijn de aanwezigen namen in de listbox
Nu haal ik met de volgende code de bedragen op van de eerste naam in de listbox:
Code:
For Each cl In sn    ‘sn is de Range bijv. “F3500:F4000”
        If n = "" Then
            n = 0
        Else
            n = n + 1
        End If
        If n > intAantal - 1 Then
            Exit For
        End If
        strNaam = lstBegunstigers.List(n)
        intLusTeller = intTeller   ‘intTeller is de regel waar begonnen word
        regel = intTeller
        intBedragen = 0
        Do While regel <= iRow  ‘iRow is de laatste regel
            If ActiveSheet.Cells(intLusTeller, "F") = strNaam Then
                strJaar = Val(ActiveSheet.Cells(intLusTeller, "E").Value)
                If strJaar = intJaar And ActiveSheet.Cells(intLusTeller, "H") = intZoek Then
                    intBedragen = intBedragen + ActiveSheet.Cells(intLusTeller, "N").Value
                End If
            End If
            If n = intAantal Then
                Exit For
            End If
            intLusTeller = intLusTeller + 1
            regel = regel + 1
        Loop
        arNaam(n) = Array(strNaam)
1*        arBedrag(n) = Array(intBedragen)
    Next”
2* lstBegunstigers.List() = Array(arNaam(), arBedrag())
Bij 1* krijg ik de melding: fout 9 tijdens uitvoering. Het subscript valt buiten bereik.
Als ik deze regel even weghaalt gaat het programma door maar vult niets in bij: 2*

Wie kan mij vertellen wat ik fout doe?

Groetjes, Peter
 
Hoe is het met Hans van der Houven ?
 
Code:
arNaam(5)
Als n = 6, valt arNaam(6) buiten het bereik.
 
Ik heb wat vreemds gevonden nl: als ik de listbox op 1 kolom zet en daar de namen in laat zetten dan gaat dit goed. Als ik daarna met listbox.columncount hem op 2 kolommen zet en ik vraag de waarde van de 2e kolom op met listbox.column(0, 1) dan krijg ik de naam die normaal op regel 2 staat? Gaat het hier soms fout en wat?

HSV, "n" kan nooit meer worden dan het aantal regels in de listbox.
 
Laatst bewerkt:
HSV, "n" kan nooit meer worden dan het aantal regels in de listbox.

Jaja, dat zal.

Klik in de comobox op 2016 en kies voor 02 Steunzolen.
Dim arNaam(5) en onderaan wordt n bij arNaam(n) 6 → Subscript valt buiten het bereik.

Succes met het zoeken.
 
Jaja, dat zal.

Klik in de comobox op 2016 en kies voor 02 Steunzolen.
Dim arNaam(5) en onderaan wordt n bij arNaam(n) 6 → Subscript valt buiten het bereik.

Succes met het zoeken.

Hallo HSV, mijn excuses u heeft toch gelijk :eek: ik heb de array veranderd met
Code:
Dim MyList(60,1) AS String 
en daarna het volgende                 
MyList(n, 0) = strNaam
MyList(n, 1) = intBedragen

en aan het einde
lstBegunstigers.List = MyList
Toen werkte alles prima, bedankt iedereen.
 
Bedankt voor je reactie en mooi dat je het probleem hebt gevonden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan