ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Date formatting in a multi column listbox (https://www.excelbanter.com/excel-programming/275885-date-formatting-multi-column-listbox.html)

Nigel Brown[_2_]

Date formatting in a multi column listbox
 
I am struggling to find a method to display dates correctly in a
listbox. I populate the listbox with the following code.

Private Sub testlist()
Dim rng As Range
Dim cw
Dim colcnt As Integer
Dim rowcnt As Integer

colcnt = ActiveSheet.UsedRange.Columns.Count
rowcnt = ActiveSheet.UsedRange.Rows.Count
str = "a2:g" & rowcnt
Set rng = Range(str)
With ListBox1
.ColumnCount = colcnt
.ColumnHeads = True
.RowSource = rng.Address
cw = ""
For i = 1 To .ColumnCount
cw = cw & rng.Columns(i).Width & ";"
Next
.ColumnWidths = cw
.ListIndex = 0
End With
End Sub

The problem is that column g on the worksheet contains dates and these
are being displayed as values in the listbox. The format I want to
used is "DD/MM/YYYY". Any help will be greatly appriciated.

Nigel Brown
Theisen Securities.

Dick Kusleika[_2_]

Date formatting in a multi column listbox
 
Nigel

When you use .RowSource to populate the list box, you don't have a lot of
control over how it looks. You can use the .AddItem method to populate the
lb, but I don't know how to get column heads in there when you do. Here's
an example of how to populate with .AddItem, and formatting dates as you go.

Sub FillLb()

Dim Rng As Range
Dim Cell As Range
Dim i As Long
Dim NewText As String

Set Rng = Sheet1.Range("A1:B10")

With Sheet1.ListBox1
.ColumnCount = Rng.Columns.Count
.ColumnHeads = True

For Each Cell In Rng.Columns(1).Cells
If IsDate(Cell.Value) Then
NewText = Format(Cell.Value, "DD/MM/YYYY")
Else
NewText = Cell.Value
End If

.AddItem NewText

For i = 1 To Rng.Columns.Count - 1
If IsDate(Cell.Offset(0, i).Value) Then
NewText = Format(Cell.Offset(0, i).Value, "DD/MM/YYYY")
Else
NewText = Cell.Offset(0, i).Value
End If

.List(.ListCount - 1, i) = NewText
Next i
Next Cell
End With

End Sub

--
Dick Kusleika
MVP - Excel
www.dicks-clicks.com

"Nigel Brown" wrote in message
om...
I am struggling to find a method to display dates correctly in a
listbox. I populate the listbox with the following code.

Private Sub testlist()
Dim rng As Range
Dim cw
Dim colcnt As Integer
Dim rowcnt As Integer

colcnt = ActiveSheet.UsedRange.Columns.Count
rowcnt = ActiveSheet.UsedRange.Rows.Count
str = "a2:g" & rowcnt
Set rng = Range(str)
With ListBox1
.ColumnCount = colcnt
.ColumnHeads = True
.RowSource = rng.Address
cw = ""
For i = 1 To .ColumnCount
cw = cw & rng.Columns(i).Width & ";"
Next
.ColumnWidths = cw
.ListIndex = 0
End With
End Sub

The problem is that column g on the worksheet contains dates and these
are being displayed as values in the listbox. The format I want to
used is "DD/MM/YYYY". Any help will be greatly appriciated.

Nigel Brown
Theisen Securities.




Nigel Brown[_2_]

Date formatting in a multi column listbox
 
Dick,
Thanks for your reply. Column headers are taken from the row above the
selected range. So in my case they are in row 1 and I begin my data
selection in row2.

Nigel
Theisen Securities



*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!


All times are GMT +1. The time now is 02:30 PM.

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