XL 2019 Format Combobox

  • Initiateur de la discussion Initiateur de la discussion chinel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
196
Réponses
3
Affichages
221
Réponses
40
Affichages
1 K
Réponses
118
Affichages
2 K
Réponses
9
Affichages
225
Réponses
15
Affichages
688
  • Question Question
Autres Code VBA
Réponses
11
Affichages
266
Réponses
5
Affichages
250
Retour