j'ai un fichier Excel 2003 comportant un tableau d'une centaine de lignes et 10 colonnes.
Seulement voilà, à chaque ajout de fiche, une ligne supplémentaire s'ajoute automatiquement.
J'aimerais faire une macro qui effectue un tri sur la colonne "A" mais qui s'adapte à chaque fois qu'une ligne supplémentaire s'ajoute pour ne pas être obligé de modifier la "plage à trier" dans la macro. Je m'explique : actuellement le tableau est A2:J420 mais si j'ajoute une ligne ce sera A2:J421 etc ... La macro de tri "normal" fera son travail en A2:J420.
Quelqu'un peut-il m'aider dans ce sens ?
Un grand merci à toutes et tous pour vos réponses et excellente journée.
Utilise l'enregistreur de macro automatique d'excel puis colle le code ici ou mets ton fichier en ligne
A te relire
Dan
Bonsoir,
l'enregistreur automatique n'incrémente pas le tri sur des rajouts de ligne ! Il se contente de trier la plage "figée" qu'on lui donne lors de l'enregistrement de la macro ! Quant à mettre le fichier en ligne ... il contient des données sensibles. Merci en tout cas, j'espère que quelqu'un pourra m'aider. Bonne soirée.
l'enregistreur automatique n'incrémente pas le tri sur des rajouts de ligne ! Il se contente de trier la plage "figée" qu'on lui donne lors de l'enregistrement de la macro
Cela je le sais.
Pas besoin de savoir le nombre de lignes à trier pour comprendre ce que tu dois faire.
Mets donc le code comme je te l'ai demandé et on corrigera sur la plage concernée
ActiveSheet.UsedRange.entireRow.sort Key1:=Range("A2"), Order:=xlAscending, Header:=xlYes
' Range("A2") est ici la colonne choisie sur laquelle le filtre doit opérer
' J'espère avoir répondu a ton attente
'Amitié
'Air_2
Dim Lg As Integer
Lg = Range("A65536").End(xlUp).Row
Range("a5:j" & Lg).Sort Key1:=Range("a5"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False
End Sub
ici, on trie une plage de A à J sur toutes les lignes (définies par la variable Lg), à partir de
la ligne 5, plage à adapter.
colonne A triée A-Z,
Header:=xlNo (dans le code) indique que la plage ne comprend pas la ligne d'en-tête.