Macro pour sélectionner tableau

Résolu

Bonjour,

J'ai cette macro qui fonctionne, mais mon problème est que si je rajoute des lignes, il ne les prend pas en compte car il ne sélectionne que les lignes de 2 à 12 mais pas au delà. Or mon tableau est susceptible de s'allonger.

Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add2 Key:=Range("A2:A12") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil2").Sort
        .SetRange Range("A1:G12")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A2").Select

Merci pour votre aide

mchotard
Windows / Chrome 110.0.0.0

5 réponses

  1. Bonjour,

    C'est dommage que tu ne tiennes pas compte des conseils...

    L'utilisation des Tableaux Structurés t'affranchirait de tous ces problèmes de dimension, nom, etc...

    Et si tu enregistres ta macro via l'enregistreur, et effectuant tes tris dans un TS, tu auras un code valable tout le temps...

    Bon courage


    0
    1. Bonjour Mochtard

      Attribuez un nom champ A1:a12 pour l'utiliser dans la macro

      Même chose pour A1:G12

      Quand vous ajoutez des lignes les insérer  avant la ligne 12

      Puis vérifier en sélectionnant le champ le nom s'affiche dans la zone à coté de la barre de formule


      0
      1. Merci pour ces deux réponses. Je tiens compte des conseils, et j'utilise personnellement les tableaux structurés, mais je travaille pour une personne qui débute dans excel et il lui faut des choses simples à utiliser je dois faire avec!!.

        J'ai bien adapté les conseils de Philou10120, et j'ai un problème de débocage à .apply ?

        Désolé

        mchotard

        0
        1. Bonjour,

          Essaie peut-être en remplaçant ton code par celui-ci :

              Range("A1").CurrentRegion.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlYes
              Range("A2").Select
          

          Cordialement

          0
          1. Formidable ALS35

            Pourquoi chercher midi à 14 h alors que c'est tout simple et ça fonctionne.

            Grand merci à vous tous.

            mchotard

            0