ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How to align decimals in a Listbox (https://www.excelbanter.com/excel-programming/409645-how-align-decimals-listbox.html)

[email protected]

How to align decimals in a Listbox
 
I would like to have a column in a list box that contains numbers with
decimals and have the decimals aligned. Another column has text that
should be left aligned. Is there ANY way to do this.

A similar question: Can I apply the format of the cells in the worksheet to
the "same" "cells" in the list box? (If the contents of cell A6 is
displayed in a listbox, I would like the format of cell A6 to be used.)

Many thanks.

Dave Peterson

How to align decimals in a Listbox
 
Can you use a non-proportional font--like Courier New?

If yes...

I created a small userform with a listbox and a couple of command buttons in
it. And used a two column range and formatted the second column by specifying a
numberformat and adding some leading spaces.

Option Explicit
Private Sub CommandButton1_Click()
Dim iCtr As Long
With Me.ListBox1
For iCtr = 0 To .ListCount - 1
If .Selected(iCtr) Then
MsgBox .List(iCtr, 0) & "--" & CDbl(.List(iCtr, 1))
End If
Next iCtr
End With
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim myRng As Range
Dim myCell As Range

With Worksheets("Sheet1")
Set myRng = .Range("a1:b10")
End With

With Me.ListBox1
.MultiSelect = fmMultiSelectMulti
.ColumnCount = myRng.Columns.Count

.Font = "Courier New"
For Each myCell In myRng.Columns(1).Cells
.AddItem myCell.Value
.List(.ListCount - 1, 1) = NicelySpaced(myCell.Offset(0, 1).Value)
Next myCell
End With

With Me.CommandButton1
.Caption = "Ok"
.Default = True
End With

With Me.CommandButton2
.Caption = "Cancel"
.Cancel = True
End With

End Sub
Function NicelySpaced(myVal As Double) As String
Dim myStr As String
Dim HowWide As Long

HowWide = 15
myStr = Format(myVal, "#,###.####")
myStr = Right(Space(HowWide) & myStr, HowWide)
NicelySpaced = myStr
End Function



wrote:

I would like to have a column in a list box that contains numbers with
decimals and have the decimals aligned. Another column has text that
should be left aligned. Is there ANY way to do this.

A similar question: Can I apply the format of the cells in the worksheet to
the "same" "cells" in the list box? (If the contents of cell A6 is
displayed in a listbox, I would like the format of cell A6 to be used.)

Many thanks.


--

Dave Peterson

Martin Fishlock

How to align decimals in a Listbox
 
1. You need to format the numbers into a string and then put them onto to the
list box. ie:

s = Format(1.22223, "#,##0.00")
You may then need to pad the left had side and there are always problems
with bigger numbers.

For the text you need to pad it with spaces. (ie check the length with len()
and then add spaces in the right hand side.


2. As seen in the format function you can use the same formats as the cells.

--
Hope this helps
Martin Fishlock, www.nyfconsultants.com, Bangkok, Thailand
Please do not forget to rate this reply.


" wrote:

I would like to have a column in a list box that contains numbers with
decimals and have the decimals aligned. Another column has text that
should be left aligned. Is there ANY way to do this.

A similar question: Can I apply the format of the cells in the worksheet to
the "same" "cells" in the list box? (If the contents of cell A6 is
displayed in a listbox, I would like the format of cell A6 to be used.)

Many thanks.



All times are GMT +1. The time now is 12:05 AM.

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