Most Valuable Professional


View Jan Karel Pieterse's profile on LinkedIn subscribe to rss feed
Subscribe in a reader

Subscribe to our mailing list

* indicates required

Bestand crasht Excel!!

Red mijn werkmap!
De beste tool voor Excel bestanden met problemen.

Cursussen

Excel VBA Masterclass (Engels)
Excel VBA voor Financials

Third party tools

Speed up your file

FastExcel
The best tool to optimise your Excel model!

Repair your file

Stellar Phoenix Excel Repair
Best tool to repair corrupt Excel sheets and objects
Home > Nederlandse site > Artikelen > Listbox Passend Maken > Hoe het werkt
This page in English

Kolom breedtes in een ListBox automatisch aanpassen

Hoe het aanpassen in zijn werk gaat

Verschillende mensen hebben een truc bedacht om de kolom breedtes te bepalen. Sommigen gebruiken constanten, waarmee het aantal te tonen karakters wordt vermenigvuldigd. Deze truc werkt echter niet betrouwbaar omdat de schermresolutie en het lettertype invloed hebben op het resultaat.
De beste methode die ik ken gebruikt een (verborgen) label op het formulier met de AutoSize eigenschap op waar. De label moet hetzelfde lettertype hebben als de listbox. Na veranderen van de tekst van de label, kan de breedte van de label worden afgelezen. Die breedte wordt vervolgens gebruikt als kolombreedte.

De Functie SetWidths op het codevenster van het userform (zoals te zien op de vorige pagina) verzorgt het instellen van de kolombreedtes. Een matrix van de grootste tekst lengtes per kolom wordt aan deze functie doorgegeven. Vervolgens wordt voor iedere kolom de "caption" van het label voorzien van dat aantal karakters. Ik gebruik daarbij steeds hetzelfde karakter en omdat het lettertype vaak proportioneel is gebruik ik een letter die traditioneel een grote breedte heeft, de m. Die letter bepaald dus in grote mate de resulterende breedte. Tenslotte worden de gevonden breedtes achter elkaar gezet gescheiden door een ; en aan de "ColumnWidths" eigenschap doorgegeven van de listbox.

Het is belangrijk de eigenschappen van het label juist in te stellen; WordWrap moet Onwaar zijn en AutoSize Waar.

Het eindresultaat ziet er zo uit:

Niet slecht!?

 


 


Vragen, suggesties en opmerkingen

Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: www.eileenslounge.com.

Uw naam (verplicht veld):

Uw e-mail adres (Niet verplicht, dit adres wordt niet getoond)

Uw verzoek of commentaar:

Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].