Trier avec un Userform

Bonsoir Forum,

Mon problème est que je désire trier plusieurs tableaux mais que les utilisateurs puisse choisir les thèmes qui désire trier et dans quel ordre, comme la fonction de trie dans excel, mais cette fonction ne permet pas de trier plusieurs tableaux à la fois c'est pour cela que je me suis retourné vers VBA. Mais mes compétences étant extrêmement limité en VBA j'ai essayer quelque chose avec un userform, je suis arrivé partiellement à résourdre mon problème, c'est pour cela que je me tourne vers vous.

Mon problème est que je veux trier selon 3 thèmes, mais lorsque l'un est vide ma procédure plante (1er problème), ensuite pour chaque thème je voudrais que l'utilisateur puisse choisir entre croissant et decroissant. (2e problème)

Je vous envoie mon fichier, en se moment j'ai deux boutons, mais éventuellement j'aimerais que tous ce fasse en une seule procédure.

166trieuserform.zip (14.78 Ko)

Merci

-- Mar Mai 18, 2010 10:39 pm --

Ok avec quelques essaies, j'ai réussi à régler mon problème 1, mais il me reste qu'à résoudre le problème d'ordre, je veux procéder de la même façon que mes thême, mais ça ne marche pas..

Voici mon nouveau code

Private Sub CommandButton1_Click()

Dim Trie1 As String

Dim Trie2 As String

Dim Trie3 As String

Dim critere1 As String

Dim critere2 As Variant

Dim critere3 As Variant

Trie1 = ComboBox1.Text

Trie2 = ComboBox2.Text

Trie3 = ComboBox3.Text

Order1 = ComboBox4.Text

Order2 = ComboBox5.Text

Order3 = ComboBox6.Text

Cells(2, 14) = Trie1

Cells(3, 14) = Trie2

Cells(4, 14) = Trie3

Cells(2, 15) = Order1

Cells(3, 15) = Order2

Cells(4, 15) = Order3

UserForm1.Hide

critere1 = Range("I2").Value

critere2 = Range("I3").Value

critere3 = Range("I4").Value

'JE VOUDRAIS FAIRE COMME MES CRITÈRES, LES INSÉRER DANS LE TRIE

If critere2 = "" And critere3 = "" Then

Range("A1:F41").Select

Selection.Sort Key1:=Range(critere1), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _

False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _

:=xlSortNormal

End If

If critere3 = "" And critere2 <> "" Then

Range("A1:F41").Select

Selection.Sort Key1:=Range(critere1), Order1:=xlAscending, Key2:=Range(critere2) _

, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _

False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _

:=xlSortNormal

End If

If Not critere3 = "" Then

Range("A1:F41").Select

Selection.Sort Key1:=Range(critere1), Order1:=xlAscending, Key2:=Range(critere2) _

, Order2:=xlAscending, Key3:=Range(critere3), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _

False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _

:=xlSortNormal

End If

End Sub

Bonjour,

Regarde ci-joint le fichier.

J'ai modifié la façon de sélectionner le mode de tri (Ascendant, Descendant)

Les Combobox sont alimentés par une plage dynamique (Si tu rajoutes des valeurs dans la colonne K, ils seront automatiquement rentrés dans les Combo...) (Regarde dans Insertion/Nom/Définir, et la plage "Tri")

Pour plusieurs tableaux, si tu n'y arrives pas, reviens

Bonne journée

C'est bon ça fonctionne merci!!!!!

Rechercher des sujets similaires à "trier userform"