Formulaire Recette - Trie ComboBox ordre alphabétique

Bonjour à tous !

Après avoir trouvé votre forum et aillant chercher un peu partout, je n'ai pas su trouver mon bonheur. C'est pour cela que je me permets de poster sur votre forum.

J'ai suivi un très bon tutoriel pour créer un formulaire permettant de gérer des recettes (ajout, création, images...), mais je reste bloqué pour le trie par ordre alphabétique d'une combobox.

-> https://cellulexcel.blogspot.fr/p/blog-page_15.html

Quand je choisis le type de plat, cela m'affiche dans la deuxième combobox la liste des recettes lié à ce type de plat. Or pour le moment la liste des plats n'est pas triée. J'aimerais donc, pour que ce soit plus pratique, trier la "combobox2" par ordre alphabétique.

Et jusqu’à aujourd'hui, je n'ai su mettre en place ce système ...

Je vous joints en fichier joints mon formulaire. Je pense que ce sera plus facile à comprendre

Merci d'avance pour votre aide.

Cordialement,

Wilfried.

41cuisine.zip (722.07 Ko)

Bonjour,

Voilà qui devrait pouvoir te trier la liste de ComboBox2 :

Private Sub ComboBox1_Change()
    Dim j%, i%, ii%, k%, Tbl()
    Nettoyage
    Me.ComboBox2.Clear
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    With Ws
        For j = 2 To NbLignes
            If .Range("A" & j) = Me.ComboBox1 Then
                ReDim Preserve Tbl(1, k)
                Tbl(0, k) = .Range("B" & j): Tbl(1, k) = j: k = k + 1
            End If
        Next j
    End With
    If k > 0 Then
        If k > 1 Then
            ReDim Preserve Tbl(1, k)
            For i = 0 To k - 2
                For ii = i + 1 To k - 1
                    If Tbl(0, ii) < Tbl(0, i) Then
                        Tbl(0, k) = Tbl(0, ii): Tbl(1, k) = Tbl(1, ii)
                        Tbl(0, ii) = Tbl(0, i): Tbl(1, ii) = Tbl(1, i)
                        Tbl(0, i) = Tbl(0, k): Tbl(1, i) = Tbl(1, k)
                    End If
                Next ii
            Next i
            ReDim Preserve Tbl(1, k - 1)
            ComboBox2.Column = Tbl
        Else
            With ComboBox2
                .AddItem Tbl(0, 0)
                .List(0, 1) = Tbl(1, 0)
            End With
        End If
    End If
End Sub

Se substitue à la procédure de même nom, dont j'ai juste un peu arrangé l'écriture du début, basculé le prélèvement des données sur un tableau, opéré le tri du tableau avant affectation à la Combo.

Sous quelque réserve car non testé, et non testable dans ton fichier actuel...

NB- Pénible de travailler sur ton code : indentation aléatoire, des lignes sautées à l'intérieur des procédures, procédures en désordre (non classées par VBA), déclarations de variables en balade au milieu du code exécutable, propriétés à définir par défaut qui le sont à l'exécution, et j'en passe très certainement... comme le système de Combo doublé ne me paraît pas du meilleur aloi pour le résultat recherché...)

Cordialement.

Hello MFerrand !

A première vue, ça a l'air de fonctionner !

MFerrand a écrit :

NB- Pénible de travailler sur ton code : indentation aléatoire, des lignes sautées à l'intérieur des procédures, procédures en désordre (non classées par VBA), déclarations de variables en balade au milieu du code exécutable, propriétés à définir par défaut qui le sont à l'exécution, et j'en passe très certainement... comme le système de Combo doublé ne me paraît pas du meilleur aloi pour le résultat recherché...)

Cordialement.

  • indentation aléatoire: Pour ça, je peux ré-indenter tout correctement (enfin je pense)..
  • des lignes sautées à l'intérieur des procédures : ça doit être de mon ressort de résoudre ceci.
  • propriétés à définir par défaut qui le sont à l'exécution, et j'en passe très certainement... comme le système de Combo doublé ne me paraît pas du meilleur aloi pour le résultat recherché...) : je serais près à modifier mon code, mais je t'avouerais qu'avec le peu de connaissances en VBA, cela risque d'être difficile. J'ai soif de connaissances, et suis prêt à être aiguiller pour améliorer tout ça

Pour le moment j'utilise beaucoup le "Copier/Coller" et j'ai un peu de mal à tout comprendre.

En tout cas merci de ta réponse !

Rechercher des sujets similaires à "formulaire recette trie combobox ordre alphabetique"