Vous avez un tableau Excel dont les lignes sont dans l’ordre inverse de ce qu’il vous faut. Inverser un tableau Excel, c’est une opération courante, mais le choix entre une formule et une macro VBA n’a rien d’anodin. La réponse dépend de votre version d’Excel, de la manière dont vous partagez vos fichiers et du niveau de maintenance que vous acceptez.
Sécurité et macros VBA : le frein que personne ne mentionne en premier
Avant même de comparer les techniques, un facteur change la donne : Microsoft bloque par défaut les macros VBA non fiables. Les fichiers téléchargés depuis Internet ou reçus par mail sont marqués comme non sûrs par le système.
Pour exécuter une macro dans ce contexte, il faut passer par les propriétés du fichier pour le « débloquer », ou le placer dans un emplacement approuvé (Trusted Location). Cela implique de naviguer dans le Trusted Center, section Macro Settings, et d’ajouter manuellement un dossier de confiance.
Ce durcissement de sécurité a une conséquence directe : si vous partagez un fichier contenant une macro d’inversion à un collègue, il y a de fortes chances qu’elle soit bloquée à l’ouverture. Le destinataire devra intervenir dans ses réglages de sécurité pour l’activer, ce qui n’est ni intuitif ni garanti.
À cela s’ajoute une limite structurelle : les macros VBA ne fonctionnent pas dans Excel pour le web. Si votre fichier est ouvert dans un navigateur via Microsoft 365, le code VBA est simplement ignoré. Une solution par formule reste lisible et fonctionnelle partout.

Inverser un tableau Excel avec les formules dynamiques SORT et SORTBY
Les versions récentes d’Excel intègrent des fonctions dites « dynamiques » qui changent la manière de manipuler les données. Pour inverser l’ordre des lignes d’un tableau, deux fonctions suffisent : SORT et SORTBY.
Le principe avec SORT
Imaginons un tableau de commandes en colonne A (lignes 2 à 20). Vous voulez afficher ces lignes de la dernière à la première. La fonction SORT accepte un argument d’ordre de tri : 1 pour croissant, -1 pour décroissant.
Si vos données ont une colonne de numérotation ou de date, il suffit de trier cette colonne en ordre décroissant. La formule ressemble à ceci :
=SORT(A2:D20, 1, -1)
Le résultat se déverse automatiquement dans les cellules adjacentes, sans avoir besoin de recopier la formule ligne par ligne. C’est ce qu’on appelle un « tableau dynamique » : une seule cellule contient la formule, et Excel remplit le reste.
SORTBY pour plus de contrôle
SORTBY permet de trier un tableau en fonction d’une colonne qui n’en fait pas partie. Vous pouvez créer une colonne auxiliaire avec des numéros de ligne (via la fonction LIGNE), puis trier par cette colonne en ordre décroissant. Le tableau s’inverse sans toucher aux données d’origine.
Avez-vous besoin de conserver le tableau source intact tout en affichant une version inversée ailleurs dans la feuille ? C’est exactement le cas d’usage idéal de SORTBY.
- SORT convient quand le tableau possède déjà une colonne triable (date, numéro, identifiant).
- SORTBY est préférable quand vous voulez inverser l’ordre sans modifier ni ajouter de colonne au tableau source.
- Les deux fonctions produisent un résultat dynamique : si les données changent, le tableau inversé se met à jour automatiquement.
Macro VBA pour inverser un tableau : dans quels cas c’est justifié
La formule couvre la majorité des besoins. La macro VBA garde un intérêt dans des situations précises, qu’il faut identifier avant de se lancer.
Une macro se justifie quand l’inversion doit modifier les données en place, sans créer de copie ailleurs. Par exemple, vous recevez chaque semaine un export brut et vous voulez que les lignes soient physiquement réordonnées dans le fichier avant archivage.
Le code VBA pour inverser les lignes d’une plage est court. Il consiste à parcourir la moitié des lignes du tableau et à permuter chaque ligne avec son symétrique (première avec dernière, deuxième avec avant-dernière, etc.). On utilise une ligne temporaire pour stocker les valeurs pendant la permutation.
En revanche, ce type de macro présente des limites concrètes :
- Elle ne fonctionne pas dans Excel pour le web ni dans les fichiers partagés en ligne via Microsoft 365.
- Elle nécessite un fichier au format .xlsm (classeur prenant en charge les macros), ce qui complique le partage.
- Elle peut casser des formules existantes si les cellules contiennent des références relatives qui dépendent de la position des lignes.
- Le destinataire du fichier doit débloquer les macros manuellement ou placer le fichier dans un emplacement approuvé.

Formule ou macro pour inverser un tableau Excel : critères de choix
Le choix ne se résume pas à une question de compétence technique. C’est une question de contexte d’utilisation.
| Critère | Formule (SORT/SORTBY) | Macro VBA |
|---|---|---|
| Fonctionne dans Excel web | Oui | Non |
| Partage sans friction | Oui (format .xlsx) | Non (format .xlsm, déblocage requis) |
| Mise à jour automatique | Oui | Non (exécution manuelle) |
| Modification en place | Non (crée une copie) | Oui |
| Compatible anciennes versions | Non (Excel 365 / 2021+) | Oui |
Si vous travaillez sur une version d’Excel antérieure à 2021 et que les fonctions SORT/SORTBY ne sont pas disponibles, la macro reste la seule option native. Dans ce cas, une alternative consiste à ajouter une colonne auxiliaire avec des numéros décroissants, puis à trier le tableau via le menu Données.
Pour la plupart des utilisateurs actuels, la formule est la solution la plus fiable. Elle ne dépend d’aucun réglage de sécurité, fonctionne en ligne comme en local, et se met à jour sans intervention.
La macro VBA garde sa place dans les flux automatisés où plusieurs opérations s’enchaînent (inverser, nettoyer, exporter). Mais pour le seul besoin d’inverser un tableau Excel, elle ajoute une complexité qui n’apporte rien de plus qu’une formule bien construite.

