Macro sélection de tableau

Bonjour,

Sur le fichier test ci dessous, j'ai une macro dans la feuille 1 qui sélectionne mon tableau puis trie les données selon les critères souhaités. Jusqu'ici pas de problème mais dans le code on voit que la macro sélectionne jusqu'à la ligne 56, et moi j'aimerais rendre le truc plus flexible en codifiant que la macro doit aller chercher automatiquement jusqu'à la dernière ligne qui contient des données, je crois que c'est faisable mais je n'arrive pas à le faire...

Sur la feuille 2 c'est un peu le même principe, je sélectionne le tout pour intégrer des sous-totaux, cela semble correct quel que soit le nombre de lignes que contient le tableau, est-ce bien exact?

Merci pour votre attention

14test.xlsm (77.09 Ko)

bonjour

suggestion sans VBA :

clic dans ton tableau, menu Données créer liste

désormais on peut trier ou filtrer d'un clic dans les flèches grises de la ligne 1

les totaux se font dans un TCD, avec ou sans le détail par ligne. Tu saisi faire ?

amitiés

Bonjour,

Ceci n'est qu'un petite partie du fichier d'origine, j'ai des tableaux similaires dans une multitude de feuille différentes, d'où l'utilité de juste pouvoir appuyer à un endroit pour trier le tout (le fichier vient ensuite s'enregistrer tout seul en PDF sur le bureau, ce qui est très pratique).

Le fichier tel qu'il est maintenant avec un code de ce type fonctionne, le soucis c'est quand le nombre de lignes va changer, moi je peux adapter le code mais mes collègues à qui j'aimerais adapter le fichier (ils auront d'autres colonnes, d'autres indicateurs) n'ont pas eux les connaissances pour aller toucher au code.

Et je pose cette question par rapport à ce fichier pour pouvoir adapter aussi la solution sur d'autres fichiers que j'utilise.

Anthony

Bonjour,

Essaie ainsi :

Public Sub SortData()
Dim rngData As Range, lastRow As Long, lastColumn As Long
    With ActiveSheet
        lastColumn = .Cells(2, .Columns.Count).End(xlToLeft).Column
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row - 2  'pour ligne total
        Set rngData = .Cells(2, 1).Resize(lastRow - 1, lastColumn)
        With .Sort
            .SortFields.Clear
            .SortFields.Add Key:=rngData.Cells(1, 1), SortOn:=xlSortOnValues, Order:=xlDescending
            .SortFields.Add Key:=rngData.Cells(1, 5), SortOn:=xlSortOnValues, Order:=xlDescending
            .SetRange rngData
            .Header = xlYes
            .Apply
        End With
    End With
End Sub

Merci cela fonctionne bien sur le fichier test, je vais voir si je parviens à intégrer et faire fonctionner le code sur mon plus gros fichier

Merci encore pour votre réponse,

Anthony

Rechercher des sujets similaires à "macro selection tableau"