Meerdere niet aaneengesloten kolommen uit een Excelblad plaatsen in één listbox

Status
Niet open voor verdere reacties.

dcladder

Nieuwe gebruiker
Lid geworden
11 okt 2010
Berichten
4
Nog niet zo lang geleden heb ik mijn spreadsheets voorzien van formulieren van VBA. Het is voor mij een grote stap voorwaarts, want ik ben nu in staat overzichten te genereren die veel overzichtelijker zijn dan die in een excel blad, vooral wanneer deze bladen heel veel kolommen hebben. Op het internet het antwoord gezocht, niet gevonden. Wel de site Helpmij.nl
Nu mijn vraag: Is het mogelijk om meerdere niet aaneengesloten kolommen met gegevens (staan op één werkblad) zichtbaar te maken in één listbox (bijvoorbeeld de kolommen C D E en AX AY en AZ).
Iedere reactie is mij welkom en alvast bedankt.
 
Ik denk dat je de niet aaneengesloten bereiken ergens in een andere sheet of in verborgen kolommen aaneengesloten moet zetten om het in 1 keer in te kunnen lezen.
 
dcladder,

Stoei hier maar wat mee dan kom je er wel uit

Code:
Option Explicit
Sub Ziehier()
'vul hier een listobject in. dit kan op een werkblad of in een formulier zijn.
FillListobj ActiveSheet, ActiveSheet.ListBox1, 1, 12
End Sub
Sub FillListobj(Targetsheet As Worksheet, ListItem As MSForms.ListBox, _
                Optional EersteRij = 1, Optional LaatsteRij = 10)
'als er geen eerste en laatste rij wordt opgegeven wordt rij 1 tm 10 ingelezen
Dim i As Long

With ListItem
    
    .Clear
    .ColumnCount = 6
    .ColumnWidths = "40;40;40;40;40;40"
        
    For i = EersteRij To LaatsteRij
    
        .AddItem
        
        .List(i - EersteRij, 0) = Targetsheet.Range("C" & i)
        .List(i - EersteRij, 1) = Targetsheet.Range("D" & i)
        .List(i - EersteRij, 2) = Targetsheet.Range("E" & i)
        .List(i - EersteRij, 3) = Targetsheet.Range("AX" & i)
        .List(i - EersteRij, 4) = Targetsheet.Range("AY" & i)
        .List(i - EersteRij, 5) = Targetsheet.Range("AZ" & i)

    Next

End With

End Sub
 
Laatst bewerkt:
Mark XL

Ik gok erop dat ik via dit bericht jou kan bereiken. Heel erg bedankt. Ik heb ermee gestoeid en dat kostte mij toch nog wel een paar uren, maar ik heb het voor elkaar.
Jou tip is de gouden tip voor de oplossing van mijn probleem.
 
Goed om te horen dat het je gelukt is! zo heb je jezelf weer wat bijgeleerd ;)
 
Aan Mark xl

Ik dacht dat het mij gelukt was, echter, zodra ik in de dubbele cijfers ga (in dit geval 10)

voorbeeld:
Listbox1.List(i - EersteRij, 9) = Sheets("Main").Range("AM" & i)
Listbox1.List(i - EersteRij, 10) = Sheets("Main").Range("AQ" & i)

dan krijg ik de volgende foutmelding:
"Kan de eigenschap List niet verkrijgen/instellen. Ongeldige eigenschapswaarde".
Ik kan de oplossing niet vinden.
Wat gaat er fout?
 
dcladder,

Het maximum aantal kolommen invoer in een Listbox is 10.

je kunt wel meerdere kolommen toevoegen aan een listbox, maar dan moet je deze vullen met een array(matrix)

kijk maar hoe ik het in de bijlage heb gedaan.

Bekijk bijlage Map1.xls

Succes, ik hoop dat je er wat me kunt.
 
Even dacht ik, die vindt mij niet meer terug en dan ineens is ie er..... geweldig.
Deze keer is het mij definitief gelukt. Je hebt er een bewonderaar bij. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan