Bouton de macro pour trier

Résolu
Hello a tous!!!

Je suis sur Excel et je galère à trouver une macro associé a un code VBA pour trier de façon croissante une colonne.
Sur ma feuille 1 j'aimerai avoir par clique sur un bouton commande trier la colonne D1 :D660 de ma feuille 2.
Quelle est le code VBA à mettre sur le bouton de commande pour faire cela SVP ????
Au bord de la crise !!!
Un utilisateur m'a donné la reponse ci dessous mais le probleme est que je voudrais metre mon bouton sur une autre feuille (1)...

Private Sub CommandButton1_Click()
[D1:D660].Select
Selection.Sort Key1:=Range("D1"), Order1:=xlAscending
[D1].Select
End Sub

merci beaucoup de votre aide

8 réponses

  1. Merci pour ta reponse mais cela ne marche pas la macro bloque sur la ligne:

    Sheets("feuille2").Range(D1:D660).Select

    Pourtant j'ai bien fait attention avec le nom de la feuille ....
    1
    1. et en essayant avec des guillemets (dans le range):
      Sheets("feuille2").Range("D1:D660").Select
      0
    2. elas meme avec les guillemets cela ne fonctione pas...
      tout le probleme est de mettre le bouton sur une feuille et l'action sur une autre .....
      je n'y arrive pas !!!
      0
    3. Contributeur
      Bonjour,

      en fait j'ai fait un petit test, et il semblerait que pour que ça marche, vous devriez d'abord activer la feuille sur laquelle se fera la sélection, puis sélectionner les cellules voulues :
      Sheets("Feuil2").Activate
      Range("D1:D660").Select


      Cdt.
      0
  2. Contributeur
    Bonjour,

    si tu veux trier la colonne D sur la feuille 2 alors que ton bouton est sur la feuille 1, tu peux faire comme suit :

    Private Sub CommandButton1_Click()
    Sheets("feuille2").Range(D1:D660).Select
    Selection.Sort Key1:=Range("D1"), Order1:=xlAscending
    [D1].Select
    End Sub 


    Si besoin, remplacer "feuille2" par le nom de cette feuille.

    Cordialement.
    0
    1. bonsoir,

      A testé cela tri toute la colonne D en feuil1 le bouton est en feuil 2

      http://www.cijoint.fr/cjlink.php?file=cj201108/cijTJOb1Mv.xls

      Marc
      0
      1. bonsoir,
        Ce code peut vous être utile sans bouton:

        Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        If Not Intersect(Target, Range("D:D")) Is Nothing Then
        Range("maplage").Sort Key1:=Range("D1"), Order1:=xlAscending, Header:= xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
        End If

        End Sub

        - Commence par nommer ta base de données en feuille2.
        - Copie le code
        - Clique avec le bouton droit sur l'onglet de ta feuille et choisis "Visualiser le code"
        - Colle le code et remplace "maplage" par le nom que tu as donné à ta base.

        Ce code n'est pas le mien, c'est celui de m@rina envoyé à Pixou, je l'est essayé et il fonctionne bien, il suffit ensuite de cliquer sur une cellule du colonne D dans la feuille2
        0
        1. Bonjour,
          puisque vous tenez tant à votre Bouton, essaye cette méthode: un bouton affecté à une macro (que vous devez enregistrer).
          je l'ai essayé et ça marche.

          En feuille 1 :
          - Développeur.
          - Insérer un Bouton (contrôle de formulaire).
          - Enregistrer une Macro : Nom, sans touche de raccourci, ce classeur, description, ensuite OK.
          - Sélectionner la Feuille 2.
          - Sélectionner le tableau à partir de la colonne D.
          - Sélectionner Accueil ensuite Trier et Filtrer et du plus petit au plus grand.
          - Arrêter l'enregistrement.
          - Revenir à la feuille 1.
          - Sélectionner le Bouton clic droit.
          - Affecter une macro (celle créée)
          - Ensuite OK.
          - Tester votre Bouton : vous devez être sur la feuille 2 triée.

          Vous pouvez à tout moment remplacer votre bouton par la touche de raccourci.
          0
          1. merci a tous pour vos reponse !!! bien utile ;-)
            0