Comment trier par odre croissant dans une comboBox

Résolu
Flow -  
 Flow -
Bonjour à tous,

J'ai fais un programme qui me donne les coordonnées de chaque client selon le nombre de jours avant la prochaine maintenance, j'ai une question car je n'arrive pas a trier dans la comboBox mes chiffres par ordre croissant.

Pourriez-vous m'aidez svp ?

Merci,

1 réponse

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    voir ceci:

    https://excel.developpez.com/faq/?page=OleObject#TriAlphaComboBox

    Sub TriAlpha_ComboBox()
        Dim i As Integer, j As Integer
        Dim strTemp As String
     'Supprime le contenu du ComboBox
      ComboBox1.Clear
        'Alimente le ComboBox
       ComboBox1.List() = Array("5", "2", "4", "3", "1")
      'Tri le contenu du ComboBox par ordre alphabétique
        With ComboBox1
            For i = 0 To .ListCount - 1
                For j = 0 To .ListCount - 1
                    If .List(i) < .List(j) Then
                        strTemp = .List(i)
                        .List(i) = .List(j)
                        .List(j) = strTemp
                    End If
                Next j
            Next i
        End With
    End Sub

    0
    1. Flow
       
      Merci énormement, cela fonctionne parfaitement.

      j'ai une dernière petite question.

      J'ai une textbox dans laquelle la date s'affiche comme ceci : j/m/aaaa (exemple: 3/9/2016)

      Y a t-il un moyen de l'afficher sous le,format : jj-mm-aaaa (exemple: 03 Septembre 2016) ?

      Merci encore,
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Comme ceci:



      Dim date_test As Date
       date_test = Now()
      TextBox1.Text = WorksheetFunction.Proper(Format(date_test, "dddd d mmmm yyyy"))
      


      @+ Le Pivert
      0
    3. Flow
       
      J'ai effectué le code ci-dessous, cela correspond à ma TextBox6 :

      Private Sub TextBox6_Change()
      TextBox6.Text = WorksheetFunction.Proper(Format(TextBox6.Text, "dddd d mmm yyyy"))
      End Sub

      Cependant la date est faussée, une maintenance est censée etre effectuée dans 19 jours, et cela m'affiche le Vendredi 3 Juin 2016, comme si un décalage de base était pris en compte.

      Auriez-vous une idée d'ou cela pourrait venir ?

      Merci encore;
      0
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      mettre ceci, quand vous cliquez dans la TextBox la date s'actualise:

      Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      TextBox1.Text = WorksheetFunction.Proper(Format(TextBox1.Text, "dddd d mmm yyyy"))
      End Sub
      
      0
    5. Flow
       
      C'est parfait, merci énormément, je pense que vous êtes le créateur du VBA ^^

      Bonne soirée
      0