Tri tableau en respectant ligne

Bonjour !

Je souhaiterai trier un tableau à partir des valeurs d'une colonne (chronométrages) tout en respectant les lignes (faire en sorte que les noms et prénoms restent en face de leurs chronométrages respectifs).

J'ai essayé d'enregistrer une macro en faisant la procédure manuellement, mais une fois que je la lance, j'ai un message d'erreur :

Erreur d'exécution « 91 »:

Variable objet ou variable de bloc With non définie

La VBA obtenue :

Sub tri()

Range("E6:L15").Select

Selection.AutoFilter

ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add Key:=Range _

("K6:K15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

End Sub

Je mets le fichier en pièce jointe.

Merci par avance,

Paul

29classement.xlsm (20.04 Ko)

Voilà une proposition de solution jointe.

Dis moi si ça te convient

Sub tri()
ActiveSheet.Range("E6:L15").Select
If Not ActiveWorkbook.ActiveSheet.AutoFilter Is Nothing Then
    ActiveWorkbook.ActiveSheet.AutoFilter.Sort.SortFields.Clear
Else
    Selection.AutoFilter
End If
ActiveWorkbook.ActiveSheet.AutoFilter.Sort.SortFields.Add Key:=Range("K6:K15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.ActiveSheet.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
37classement.xlsm (16.83 Ko)

Bonsoir !

C'est PAR-FAIT ! Merci beaucoup pour votre réactivité !

Paul

Ravi d'avoir pu t'aider.

Je suis de retour ...

J'ai voulu appliquer ton travail à mon fichier original (feuilles correspondant à une catégorie chacune). Tout va bien pour les poussins, mais quand j'essaie de l'adapter pour les autres catégorie (VBA faite pour Poussines dans fichier ci-joint), j'ai une erreur ...

Erreur d'exécution « 1004 »:

Référence de tri non valide.Vérifiez qu'elle se trouve bien parmi les données à trier, et que la zone Trier par n'est pas vide et ne contient pas le même texte.

Pourtant je ne vois pas d'où peut venir le problème.

Fichier ci-joint !

Paul

14chrono.xlsm (130.79 Ko)

Corrigé.

Le fait d'avoir une colonne sans critère de filtrage en plein milieu fout la m**de

PS:

Au lieu d'écrire en dure la plage à trier, tu devrais peut être t'orienter vers une formule dynamique

Dim derniereLigne as Integer

derniereLigne = Cells(rows.count, "B").end(xlUp).row

ActiveSheet.Range("B7:I"&derniereLigne).Select

etc...

24chrono.xlsm (111.32 Ko)

Merci encore une fois !

Du coup, qu'as tu modifié pour passer outre la colonne sans élément à trier ? Car si j'applique cette formule aux autres catégories toujours le même message d'erreur et je ne vois pas la modification apportée ... Grrr.

Pour la formule dynamique, pourquoi pas si ça simplifie les choses ! Après je ne connais pas cette technique, étant encore débutant en VBA !

Merci !

Paul

j'ai simplement supprimé le filtre que tu avais appliqué, puis fait la sélection et réappliqué le filtre.

Merci pour ton retour ! En effet cela fonctionne si on supprime le filtre en amont ! Par contre, il n'y a pas moyen que cela fonctionne sans supprimer le filtre ? Car pour le cas des poussines par exemple cela fonctionne sans supprimer le filtre .. Est-ce à cause de la colonne vide ?

Rechercher des sujets similaires à "tri tableau respectant ligne"