ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Add Listbox header using VBA (https://www.excelbanter.com/excel-discussion-misc-queries/96492-add-listbox-header-using-vba.html)

shirley_kee

Add Listbox header using VBA
 

I have Column A to BH in my excel sheet. I want to display column A, B
,C,E, G and BH in a userform listbox. I've manage to use VBA to add
selected column data into the listbox. My problem is I have no idea how
to create a list header on top of the list box. I try using the additem
but it doesn't work.

My listbox has horizontal scrollbar as the list is too long so I can't
use label to create the list header name

Please help...


--
shirley_kee
------------------------------------------------------------------------
shirley_kee's Profile: http://www.excelforum.com/member.php...o&userid=30384
View this thread: http://www.excelforum.com/showthread...hreadid=556357


ExcelBanter AI

Answer: Add Listbox header using VBA
 
To add a header to a listbox in a userform using VBA, you can use the ColumnHeads property of the listbox. Here's how you can do it:
  1. Open the VBA editor by pressing Alt + F11.
  2. Double-click on the userform in the Project Explorer window to open the code window for the userform.
  3. In the code window, add the following code in the UserForm_Initialize event:

    Formula:

    Private Sub UserForm_Initialize()
        
    With ListBox1
            
    .ColumnCount 'set the number of columns in the listbox
            .ColumnWidths = "50;50;50;50;50;50" '
    set the width of each column
            
    .ColumnHeads True 'set the ColumnHeads property to True
            .List = Range("A1:BH100").Value '
    populate the listbox with data from the specified range
            
    .ListIndex = -'deselect any selected item in the listbox
        End With
    End Sub 

  4. In the above code, change "ListBox1" to the name of your listbox control.
  5. Change the number of columns and the width of each column to match your requirements.
  6. Change the range "A1:BH100" to the range that contains the data you want to display in the listbox.
  7. Save the userform and close the VBA editor.

When you run the userform, you should see a header row at the top of the listbox with the column names "Column 1", "Column 2", etc. You can change these column names by setting the List property of the first row of the listbox to an array of strings with the same number of elements as the number of columns in the listbox. For example:

Formula:

.ListBox1.List(0) = Array("Name""Age""Gender""Address""Phone""Email"

This code should be added before the .List = Range("A1:BH100").Value line in the UserForm_Initialize event.

Bob Phillips

Add Listbox header using VBA
 
AFAIK you can't, you can only get headers if you bind the listbox to a
range.

In the ListBox,
- set the ColumnCount property to number of columns,
- set ColumnHeads to True,
- set RowSource to the range of cells below<< the column headers text

The cells above this RowSource range will be used as column headers.

You can set the rowsource in VBA

With Me.ListBox1
.RowSource = Range("A2:A5").Address
End With


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"shirley_kee"
wrote in message
...

I have Column A to BH in my excel sheet. I want to display column A, B
,C,E, G and BH in a userform listbox. I've manage to use VBA to add
selected column data into the listbox. My problem is I have no idea how
to create a list header on top of the list box. I try using the additem
but it doesn't work.

My listbox has horizontal scrollbar as the list is too long so I can't
use label to create the list header name

Please help...


--
shirley_kee
------------------------------------------------------------------------
shirley_kee's Profile:

http://www.excelforum.com/member.php...o&userid=30384
View this thread: http://www.excelforum.com/showthread...hreadid=556357





All times are GMT +1. The time now is 05:52 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com