listbox laden van Z naar A

Status
Niet open voor verdere reacties.

Schipper1994

Gebruiker
Lid geworden
10 mrt 2021
Berichten
158
Hallo,

is het mogelijk om een listbox alfabetisch te laden, of net niet. ik zou deze net andersom willen laden.
mijn list box word van een tabel gehaald.

(mijne is numeriek)
 
Bar weinig informatie, maar natuurlijk kan dat. Hangt er vanaf hoe je de lijstwaarden aanbiedt.
 
in bijlage vind u wat ik zoek.

ik wil mijn listbox andersom dus.

de 4 bovenaan(laatst toegevoegd), de 1 onderaan(eerst toegevoegd).
 

Bijlagen

Laatst bewerkt:
Ook een optie

Code:
Private Sub UserForm_Initialize()
 Application.ScreenUpdating = False
 With Sheets(1).ListObjects(1).DataBodyRange
   .Sort .Cells(2, 1), 2, , , , , , 1
    ListBox1.List = .Value
   .Sort .Cells(2, 1), 1, , , , , , 1
 End With
End Sub
 
Pagadder, bedankt.

ik heb jou manier toegepast, zonder de checkbox knop dan wel.
maar zo wou ik het inderdaad..

toppie. dank u wel
 
Als je wil automatiseren gebruik je de suggestie van JVeer.
 
SNB,

ik heb nu die van Pagadder gebruikt, deze geplaatst bij usrform_activate, en het werkt ook hoe ik het wil dus voor mij is het best zo.
die van Jveer snap ik niet helemaal.
 
Wel vreemd om op de tweede cel in de databodyrange te sorteren en dan met header op xlyes.
Dat het werkt verbaast me.

Ik zou eerder dit schrijven:
Code:
With Sheets(1).ListObjects(1).range
 .sort, .cells(1),,,,,,1
 
Het gaat om de kolom waarin de cel zich bevindt, al ga je voor cells(5,1) werkt het ook. De header op xlyes gaat uit van de eerste rij van de aangegeven range.
Ik moet zeggen dat ik persoonlijk ook altijd de eerste cel van de range pak. In dit geval .cells(1,1). Weet eigenlijk niet waarom ik hier voor rij 2 ben gegaan.

@hsv, je komma staat op de verkeerde plek;)
 
Laatst bewerkt:
JVeer,

Met dat het werkt verbaast me nog steeds.
Een Databodyrange is iets anders dan de Range van een tabel.
Als je het om zou zetten naar een normale Range is dit in feite wat je doet met DataBodyrange.


Code:
range[COLOR=#ff0000]("a2:b5")[/COLOR].Sort Cells(2, 1), 2, , , , , , 1

Wat sorteert er dan niet mee?
 
Blijkbaar komt het doordat je in een listobject zit
 
Dat is het ook maar verbaast me omdat het me na al die jaren nu pas opvalt.
In principe zo het niet kunnen/mogen bij die instelling van programmeren als je dit zou willen.
 
Interessant.

Mijn voorkeur blijft:
Code:
Private Sub UserForm_Initialize()
  With Blad1.ListObjects(1).DataBodyRange
    .Sort .Cells(1), 2, , , , , , 1
    ListBox1.List = .Value
    .Sort .Cells(1), 1, , , , , , 1
  End With
End Sub

@Schipper
Het vullen van listboxen en/of comboboxen hoort in de initialize-procedure
Als je de insteek van Pagadder wil volgen kan het eenvoudiger

Code:
Private Sub UserForm_Initialize()
   sn = [tabel1].Value
   sp = sn

   For j = 1 To UBound(sn)
      sp(UBound(sp) - j + 1, 1) = sn(j, 1)
      sp(UBound(sp) - j + 1, 2) = sn(j, 2)
   Next

   ListBox1.List = sp
'End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan