XL 2019 Format Combobox

chinel

XLDnaute Impliqué
Bonjour, je cherche à mettre un format comme ceci "1.000" (millier) dans une Combobox mais je ne trouve. Doit on mettre ça dans "Private Sub UserForm_Initialize()" ? Merci de votre aide.
 

patricktoulon

XLDnaute Barbatruc
Bonjour
au lieu de mettre ceci:
VB:
'exemple
combobox1.list=[A1:A20].value
dans l'activate ou initialise ou tout autre event ou sub et gérant le remplissage de ta combo
tu te fait une petite fonction de rien du tout

pour l'exemple je vais nommer cette fonction "ListFormat"

Code:
Function ListFormat(tbl, forme)
    Dim I&
    For I = 1 To UBound(tbl)
        tbl(I, 1) = Format(tbl(I, 1), forme)
    Next
    ListFormat = tbl
End Function

et par exemple le remplissage dans le activate se fera donc comme ceci
VB:
Private Sub UserForm_Activate()
    ComboBox1.List = ListFormat([A1:A20].Value, "#0 000")
End Sub

PS:si il devait y avoir des decimales le format serait "#0 000.00"
demo.gif
 

patricktoulon

XLDnaute Barbatruc
re
et histoire de faire mu muse avec ça
on pourrait élargir les possibilités de la fonction à d'autres formats tel que
en nom propre , en majuscule en minuscule , etc..etc..

la fonction se ferait comme suit
VB:
Function ListFormat(tbl, forme)
    Dim I&
    For I = 1 To UBound(tbl)
        Select Case LCase(forme)

        Case "maj": tbl(I, 1) = UCase(tbl(I, 1))

        Case "min": tbl(I, 1) = LCase(tbl(I, 1))

        Case "proper": tbl(I, 1) = WorksheetFunction.Proper(tbl(I, 1))

            'ect..etc..

        Case Else: tbl(I, 1) = Format(tbl(I, 1), forme)
        End Select
    Next
    ListFormat = tbl
End Function

et donc l'appel de cette fonction se ferait comme suit :
toujours
dans l'exemple du activate

VB:
Private Sub UserForm_Activate()
    ComboBox1.List = ListFormat([A1:A20].Value, "#0 000.00")
    ComboBox2.List = ListFormat([C1:C10].Value, "proper")
    ComboBox3.List = ListFormat([C1:C10].Value, "maj")
    ComboBox4.List = ListFormat([C1:C10].Value, "min")
End Sub
demo.gif


voila c'est assez simple en fait
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
313 934
Messages
2 103 710
Membres
108 761
dernier inscrit
daved