Problème VBA macro de triage

Je voudrai en appuyant sur un bouton sur la feuille 1 trier un tableau (A3:X600) se trouvant sur la feuille 2.
Mon tableau doit être trié par ordre croissant de la colonne T
MAis quand j'éxecute ma macro ca ne marche pas.

Pouvez vous m'aider.

Sub trioee()
'
' trioee Macro
''Données OEE.Activate
Range("A3:X600").Select
Selection.Sort Key1:=Range("'Données OEE'!T3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Merci

19 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut

    Code du bouton de la Feuil1:
    Private Sub CommandButton1_Click()
    Call Trier
    End Sub
    


    Code à mettre dans un module :
    Sub Trier()
    Sheets("Feuil2").Select
    Range("A3:X600").Select
    Selection.Sort Key1:=Range("T3"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    End Sub
    


    Quand tu cliqueras sur le bouton, ca te classera ton tableau en fonction de ta colonne T par ordre croissant.

    A+
    1. Tu as quelle version d'Excel ?
      Et as tu bien copié le code que je t'ai donné sans le modifier dans un module ?
      Dans l'éditeur VBA ?
      1. j'ai excel 97

        Oui, je l'ai bien copié dans un module

        Sub TrierQ()
        Sheets("Qualité").Select
        Range("A3:U600").Select
        Selection.Sort Key1:=Range("P3"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        End Sub

        et

        Private Sub CommandButton1_Click()
        Call TrierQ
        End Sub
        1. Après, mon bouton fait partie d'un userform et donc la commande est dans le module1 et la macro de tri dans le module 2
          1. Si tu as changé le nom du bouton, il faut le remplacer au lieu de "CommandButton1".

            Après, j'ai fait ce code sur Excel 2003, ca peut être la raison de l'erreur.

            Tu peux mettre ton fichier en ligne pour que je le télécharges et regarde ca ?
            (sur http://www.cijoint.fr/ par exemple)
            Ou c'est confidentiel ?
            1. Tiens, voila le lien, mais tu vas peut etre prendre peur sous VBA c'est un peu le bazzard.

              http://www.cijoint.fr/cjlink.php?file=cj201003/cijUCkrUtF.xls
              1. Oui, désolé, j'ai un peu de mal en VBA

                Tu t'y connais un peu en userform, je voudrais savoir si c'est possible qu'il soit en non modal sur une feuille et modal sur les autres?
                1. L'userform est en Modal par défaut :

                  Quand tu écris
                  UserForm1.Show

                  Ca sous-entend
                  UserForm1.Show vbModal


                  Pour le mettre en "non modal", il te suffit d'écrire ca :
                  UserForm1.Show vbModeless

                  1. Bon, j'ai testé ton programme et tout à l'air de marcher de mon côté... Pas d'erreur 1004.

                    Je vais te le sauvegarder en mode "compatible avec Excel 97", ca pourra peut être suffisant...
                    Je te renvoie le lien dès que c'est fait !
                    1. voici :
                      http://www.cijoint.fr/cjlink.php?file=cj201003/cijrd2JnV0.zip
                      1. Et bien je sais pas, ca doit venir de excel 97, la ligne *

                        DataOption1:=xlSortNormal

                        lui pose un problème
                        1. Passe la en commentaire (en rajoutant ' devant la ligne) et reteste pour voir si ca passe.
                          Cette ligne est pas tellement important je crois.
                          1. La supprimer ou la passer en commentaire revient au même, mais il faut aussi virer le , _ de la ligne précédente :)
                            Tant mieux si ca marche !

                            A+