Listbox met meerdere kolommen - gegevens uit excel

Status
Niet open voor verdere reacties.

xenium

Gebruiker
Lid geworden
1 jul 2007
Berichten
150
Hallo,

Ik raak er niet helemaal uit...

Ik ben een listbox aan het maken waarin ik 3 kolommen zou hebben: een id (niet zichtbaar voor de gebruiker), een productnaam en de vervaldatum.

hierbij een klein stukje uit de code:

Code:
For i = 2 To intRij
            If Cells(i, 10).Value = "Neen" Then
                If Cells(i, 11).Value = "Ja" Then
                    With Me.lstVervallen
                        .AddItem
                        .Column(0, 0) = Cells(i, 1).Value 'ID
                        .Column(1, 0) = Cells(i, 2).Value 'Productnaam
                        .Column(2, 0) = Cells(i, 6).Value 'Vervaldatum
                    End With
                End If
            End If
        Next i

Wanneer ik dit doe toont hij mij in de listbox enkel de laatste uit deze test. Kan iemand mij hiermee helpen.

Alvast bedankt.

Groetjes,

xenium
 
Test dit eens.
Zet 'ColumnCount' op 3 in de eigenschappen.
Code:
For i = 2 To intRij
  If Cells(i, 10).Value = "Neen" And Cells(i, 11).Value = "Ja" Then
                    With lstvervallen
                        .AddItem Cells(i, 1).Value                   'ID
                        .List(.ListCount - 1, 1) = Cells(i, 2).Value 'Productnaam
                        .List(.ListCount - 1, 2) = Cells(i, 6).Value 'Vervaldatum
                    End With
                End If
        Next i
 
Hallo,

Super, dit werkt. Enkel ik begrijp niet goed de code, kan je deze even kort toelichten?

Groetjes,

xenium
 
Hallo,

Hoezo, het wijkt niet veel af van je eigen toch?
Ga met de cursor achter een term staan die je niet begrijpt en druk F1.
Daar kom je verder mee dan mijn toelichting.
 
Hey,

Bedankt voor het antwoord, maar nu probeer ik dit toe te passen in een andere userform en daar lukt het niet.
Ik heb nu een listbox in "pagina" staan en hier lukt dit niet.

Code:
With Me.lstNietInGebruik
.AddItem Cells(i, 1).Value
.List(.ListCount - 1, 1) = Cells(i, 2).Value
.List(.ListCount - 1, 2) = Cells(i, 5).Value
.List(.ListCount - 1, 3) = Cells(i, 6).Value
.List(.ListCount - 1, 4) = i
End With

Het is wel zo dat deze pagina waar de listbox opstaat niet standaard zichtbaar is, enkel wanneer er op deze pagina geklikt wordt.
In de listbox wordt enkel het eerste getoond.
Ik heb reeds de eigenschappen van de listbox aangepast naar listcount: 5 en de breedte van de kolommen heb ik ook aangepast.

Ik vermoed dat dit verband gaat houden met dat dit op een pagina staat?

Kan iemand mij hiermee helpen?

Alvast bedankt.
 
Als jij het bestand plaatst, hoef ik het niet na te bouwen.
 
Hallo,

Ik heb wel even mijn bestand wat aangepast.
Als je gaat kijken in de formulieren gaat het over formulier "frmMedSymp". Hier heb ik met pagina's gewerkt, op de pagina "in gebruik", "niet in gebruik" en "vervallen" staat een listbox die zou opgevuld moeten worden met 5 gegevens.

Als je het formulier opent, kies je symptoom "blaren" (dubbelklikken) en dan kies je daarna voor "compeed..." (ook dubbelklikken), wanneer je nu gaat kijken bij vervallen zie je enkel dat het ID (1, 2, 3, ...) wordt weergegeven.

Ik heb de listbox op 5 gezet.

Ik weet niet goed wat het probleem precies is.

Alvast heel hard bedankt.Bekijk bijlage Vraag op helpmij.xlsm
 
Hallo,

Ik heb je code hier en daar aangepast.

Als het een geheel bereik is dat je wil toevoegen aan een Listbox, kun je gebruik maken van "Listbox1.list" i.p.v. "AddItem"
Maak gebruik van "With" in code i.p.v. "Select" om naar het blad te verwijzen (overbodig heen en weer gevlieg op achtergrond).
Ik heb verwezen naar tabblad "Vervallen" in de code (dit moet je maar aanpassen indien anders).
Ook het verwijs naar de Userform (Me) voor elke listbox stoorde me (In de code in de Userform-module wordt altijd verwezen naar objecten in de Userform).

De code heb ik niet afgemaakt, deze laat ik verder aan jou over.
Ik hoop je zo een beetje op weg te hebben geholpen.
 

Bijlagen

Hey,

Bedankt, deze code werkt. Enkel ik snap niet veel van deze code.
Heb deze code ook in een ander programma staan, maar weet eigenlijk niet wat deze doet.
Wat gebeurt er eigenlijk met de code c1.offset (....)?

Alvast bedankt.
 
'cl' is de gevonden waarde: cl.offset(.... is het aantal stappen naar alle kanten als aangegeven.
(0, -1) is nul naar onder of boven, 1 naar links.
(0, 1) is nul naar onder of boven, 1 cel naar rechts.
(1, 0) is een cel naar onderen, nul naar rechts of links.
(-1, 0) is een cel naar boven, nul.........

Druk eens vaker op de sneltoets F1 en zoek eens, daar leer je meer van dan voorgeschoteld verkregen. ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan