Array inlezen combobox

Status
Niet open voor verdere reacties.

tcgjohn

Gebruiker
Lid geworden
1 mrt 2007
Berichten
35
De volgende array gebruik ik om gegevens uit een sheet in te lezen in een combobox.
In het bereik K2 t/m K21 gaat dat uitstekend. Echter als van K16 t/m K21 geen gegevens staan, zie ik toch lege ruimtes in de combobox.
Hoe kan ik nu de Array vullen tot aan het laatste gevulde veld en alleen gegevens zichtbaar maken in de combobox.
HTML:
'importeert open plaatsen via array in combobox5
  
  Dim myArrayL24 As Variant
    Dim myCount As Integer
  
        myArrayL24 = Worksheets("blad1").Range("K2:K21")
        For myCount = 1 To UBound(myArrayL24)
            ComboBox5.List = myArrayL24
        Next myCount
     
    Me.ComboBox5.ListIndex = 0

Wat kan ik aanpassen?

Alvast bedankt.
John
 
Hoi

Ik zou niet met een vaste range werken, dat is zoals je nu gemerkt hebt niet echt flexibel. Gewoon wat lege cellen en je komt al in de problemen.

Wat je kan doen, is de Combobox leeg maken met Clear. En vervolgens met een lus doorheen de cellen gaan en telkens AddItem gebruiken om de celinhoud toe te voegen aan de Combobox.

Als ik nog de tijd vind zal ik de code schrijven, anders moet je zelf maar wat proberen. (wat altijd mag natuurlijk ;))

Wigi
 
Dit is wat ik bedoelde:

Code:
Sub wigi()

'importeert open plaatsen via array in combobox5

    Dim rData As Range
    Dim r As Range

    On Error Resume Next
    Set rData = Sheets("blad1").Range("K2:K21").SpecialCells(xlCellTypeConstants, xlTextValues)
    On Error GoTo 0

    With Me.ComboBox5

        If Not rData Is Nothing Then
            
            .Clear
            
            For Each r In rData
                .AddItem r.Text
            End With
            
            .ListIndex = 0
            
        End If

    End With

End Sub

Uit K2:K21 worden de cellen met tekst genomen (en zonder formules). Aanpassen kan je altijd als je wil.

Wigi
 
Nog een kleine aanpassing gemaakt om getallen in te lezen en Next na For each ipv end With.

HTML:
Sub wigi()

'importeert open plaatsen via array in combobox5

    Dim rData As Range
    Dim r As Range

    On Error Resume Next
    Set rData = Sheets("blad1").Range("K2:K21").SpecialCells(xlCellTypeConstants, xlNumbers)
    On Error GoTo 0

    With Me.ComboBox5

        If Not rData Is Nothing Then     
                .Clear      
            For Each r In rData
                .AddItem r.Text
           next
                .ListIndex = 0
        End If
    End With
End Sub

De code werkt prima om ontbrekende getallen in een Combobox te plaatsen.
Bedankt.
John
 
Nog een kleine aanpassing gemaakt om getallen in te lezen en Next na For each ipv end With.

Klopt. Sorry, typo is gauw gemaakt als je wat begint te schuiven in de code. Good catch.

Wigi
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan