Inverser deux colonnes, deux lignes ou deux cellules dans Excel
Inverse deux colonnes voisines d’un simple glissement, la touche Maj relâchée, et deux colonnes éloignées d’un clic avec notre macro, qui garde tes sommes entières.
Glissée par son bord, sans aucune touche enfoncée, une colonne se pose entre deux autres sans rien écraser, ce qui suffit à inverser deux colonnes voisines. Excel n’a pourtant aucune commande qui échange deux plages éloignées, et il faut alors deux déplacements, qui peuvent raccourcir une somme. Notre macro VBA les intervertit en gardant tes sommes de ligne entières.
Comment inverser deux colonnes sur Excel
Pour inverser deux colonnes voisines, sélectionne la première par son en-tête, puis glisse son bord derrière la seconde sans appuyer sur aucune touche. Deux colonnes éloignées demandent deux de ces déplacements, ou une seule exécution de notre macro, et le choix compte dès que ton tableau porte des sommes.
Toute la page suit un même exemple, l’onglet Ventes, où un export a rangé les mois du premier trimestre à l’envers, Mars en B et Janvier en D, avec la colonne Mars surlignée. La colonne Total T1 additionne chaque ligne par =SOMME(B2:D2), et la Progression retranche janvier de mars par =B2-D2.
L’onglet Ventes, avec les mois à l’envers
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Commercial | Mars | Février | Janvier | Total T1 | Progression |
| 2 | Julie | 14200 | 12900 | 11800 | 38900 | 2400 |
| 3 | Karim | 9600 | 10100 | 10400 | 30100 | -800 |
| 4 | Marc | 12300 | 11700 | 9900 | 33900 | 2400 |
| 5 | Sonia | 8750 | 9200 | 9050 | 27000 | -300 |
| 6 | Thomas | 11400 | 10850 | 12100 | 34350 | -700 |
| 7 | Total | 56250 | 54750 | 53250 | 164250 | 3000 |
| Méthode | Pour deux colonnes éloignées | Ce que devient =SOMME(B2:D2) |
|---|---|---|
| Couper puis insérer | Deux coupes, deux insertions | =SOMME(C2:C2), la seule colonne du milieu |
| CHOISIRCOLS | Une formule qui recopie le tableau dans l’ordre voulu | Inchangée, puisque le tableau d’origine ne bouge pas |
| Macro de cette page | Une seule exécution | Inchangée, toujours =SOMME(B2:D2) |
Glisser une colonne derrière sa voisine sans la touche Maj
Deux colonnes voisines s’inversent en un seul glissement, puisqu’il suffit de poser la première juste derrière la seconde. Dans l’onglet Ventes, c’est donc Mars, en B, que tu glisses entre Février et Janvier, en suivant les trois gestes ci-dessous.
- 01
Clique sur la lettre B, en haut de la feuille, pour sélectionner toute la colonne Mars.
- 02
Pointe le bord de la sélection jusqu’à ce que le pointeur devienne le pointeur de déplacement, comme l’appelle l’aide de Microsoft.
- 03
Fais glisser la colonne jusqu’à la bordure qui sépare C de D, sans appuyer sur aucune touche, puis lâche la souris dès que le trait vertical se pose sur cette bordure.

Le trait vertical posé sur la bordure entre C et D, avec l’info-bulle D:D, pendant un glissement fait sans aucune touche. C’est lui qui annonce une insertion à cet endroit, et c’est donc lui qu’il faut voir avant de lâcher la souris.
Février passe en B et Mars en C, sans que rien soit écrasé, et le Total T1 de Julie vaut toujours 38 900. Fait par Couper puis insérer, Mars coupée puis insérée devant Janvier, ce déplacement laisse =SOMME(B2:D2) telle quelle. Le geste inverse, Février coupée puis insérée devant Mars, échange les mêmes colonnes mais sort Février de la somme, qui devient =SOMME(C2:D2).
La touche Maj retourne ce geste du tout au tout. Tenue pendant le glissement, elle fait apparaître un rectangle épais autour de la colonne visée, la bordure ne se vise plus, et Excel ouvre la fenêtre ci-dessous au moment où tu lâches la souris.

L’aide de Microsoft décrit pourtant le contraire, et demande de garder la touche Maj enfoncée pour poser la ligne ou la colonne entre deux autres. Sur Excel 365 en français pour Windows, c’est le glissement sans aucune touche qui insère, et la touche Maj qui déclenche le remplacement. Fie-toi donc à ce que ta feuille affiche pendant le geste, le trait ou le rectangle, plutôt qu’à la touche que tu tiens.
Échanger deux colonnes éloignées en deux glissements
Deux colonnes séparées par une troisième ne s’échangent pas d’un seul geste, puisque le glissement insère la colonne entre deux autres au lieu de la permuter. Il en faut donc deux, Janvier glissé devant Mars, puis Mars glissé derrière Février, et les mois retrouvent leur ordre. Ce que ces deux déplacements font aux sommes se lit juste après, où ils sont faits par Couper puis insérer.
Couper la colonne puis insérer les cellules coupées
Couper la colonne puis l’insérer devant une autre refait ce déplacement au clavier et par le clic droit, sans viser une bordure à la souris. Excel nomme la commande du menu Insérer les cellules coupées, et la feuille finit dans l’état où un glissement la laisse.
- 01
Clique sur une cellule de la colonne Janvier, puis appuie sur Ctrl+Espace pour sélectionner toute la colonne D.
- 02
Appuie sur Ctrl+X pour couper la colonne.
- 03
Fais un clic droit sur la lettre B, l’en-tête de la colonne devant laquelle Janvier doit arriver, puis choisis d’insérer les cellules coupées.
Janvier arrive en B et décale Mars et Février d’une colonne vers la droite. Pour finir l’échange, coupe ensuite la colonne Mars, désormais en C, et insère-la devant la colonne E, ce qui donne la feuille ci-dessous.
L’onglet Ventes après deux coupes et deux insertions, avec Total T1 réduit à février
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Commercial | Janvier | Février | Mars | Total T1 | Progression |
| 2 | Julie | 11800 | 12900 | 14200 | 12900 | 2400 |
| 3 | Karim | 10400 | 10100 | 9600 | 10100 | -800 |
| 4 | Marc | 9900 | 11700 | 12300 | 11700 | 2400 |
| 5 | Sonia | 9050 | 9200 | 8750 | 9200 | -300 |
| 6 | Thomas | 12100 | 10850 | 11400 | 10850 | -700 |
| 7 | Total | 53250 | 54750 | 56250 | 54750 | 3000 |
Chaque Total T1 vaut désormais le seul chiffre de février, parce qu’Excel a réduit =SOMME(B2:D2) à =SOMME(C2:C2) au fil des deux déplacements. La Progression, elle, a suivi ses données et s’écrit maintenant =D2-B2, si bien qu’elle garde ses valeurs. Il te reste alors à réécrire la somme de la ligne 2 puis à la recopier jusqu’à la ligne 6, à moins de passer par la macro, qui la garde telle quelle.
Déplacer une colonne Excel entre deux colonnes
Pour déplacer une colonne Excel entre deux colonnes, glisse son bord jusqu’à la bordure qui les sépare, clavier relâché, ou coupe-la puis insère-la devant la seconde, comme pour inverser deux colonnes. Une formule qui lit une cellule déplacée la suit alors à sa nouvelle place.
Une somme posée sur plusieurs colonnes réagit, elle, selon l’endroit où la colonne arrive. Coupée puis insérée devant B, Janvier sort ainsi de =SOMME(B2:D2), qui devient =SOMME(C2:D2) et ne compte plus que mars et février.
Glisser plusieurs colonnes voisines à la fois
Plusieurs colonnes côte à côte se déplacent d’un bloc, si tu les sélectionnes ensemble par leurs lettres, de C à D par exemple. Tu glisses ensuite le bord de la sélection, sans toucher au clavier, ou tu les coupes pour les insérer ailleurs. Coupées ensemble puis insérées devant B, Février et Janvier gardent leur ordre et Mars passe en D, mais la somme de chaque ligne ne compte plus que Mars.
L’aide de Microsoft précise que la souris ne déplace pas des lignes ou des colonnes qui ne se touchent pas. Pour réunir Mars et Janvier, séparées par Février, il faut donc deux gestes, ou la macro.
Réorganiser les colonnes d’un tableau Excel (Ctrl+L)
Dans un tableau créé par Ctrl+L, les colonnes se coupent et s’insèrent de la même façon, et une formule du tableau y nomme les colonnes qu’elle lit, comme =[@Mars]-[@Janvier]. Quand Janvier, coupée puis insérée, passe devant Mars, cette formule garde donc son texte et son résultat.
Afficher les colonnes dans un autre ordre avec CHOISIRCOLS
Si le tableau d’origine ne doit pas bouger, la fonction CHOISIRCOLS, disponible dans Microsoft 365 et Excel 2024, en fait une copie dans l’ordre que tu lui donnes. Ses arguments sont les numéros des colonnes dans l’ordre voulu, si bien que 1;4;3;2;5;6 garde Commercial en tête et échange la deuxième colonne avec la quatrième.
=CHOISIRCOLS(A1:F7;1;4;3;2;5;6)Écrite en H1, elle renvoie Commercial, Janvier, Février, Mars, Total T1 et Progression sur sept lignes, avec 38 900 pour le total de Julie.
La copie ne contient que des valeurs, recalculées dès que l’export change, et le tableau d’origine garde ses colonnes et ses sommes. Elle convient à un rapport qui relit chaque semaine un export dont l’ordre des colonnes doit rester celui du logiciel qui le produit.
Permuter deux lignes ou deux cellules dans Excel
Pour permuter deux lignes voisines, sélectionne l’une par son numéro et glisse son bord jusqu’à la bordure voulue, exactement comme une colonne. Deux cellules voisines se permutent de la même façon, en glissant le bord de l’une, alors que deux lignes éloignées demandent, comme deux colonnes, deux déplacements ou la macro.
Remonter une ligne au-dessus d’une autre d’un glissement
Pour remonter la ligne de Thomas en haut du tableau, sélectionne-la par son numéro 6, puis glisse son bord jusqu’à la bordure qui sépare les lignes 1 et 2. Thomas passe en ligne 2 et Julie descend d’un cran, chacun avec sa somme de ligne.
Le total de la ligne 7, lui, perd Thomas quand sa ligne est coupée puis insérée devant la ligne 2. Sa formule =SOMME(B2:B6) devient alors =SOMME(B3:B6), et le total de mars tombe de 56 250 à 44 850. Notre macro, lancée sur les lignes 2 et 6, échange Julie et Thomas sans que ce total bouge.
Intervertir deux cellules voisines d’un glissement
Pour intervertir deux cellules voisines, sélectionne celle de droite, puis glisse son bord jusqu’à la bordure gauche de l’autre, clavier relâché. Le chiffre de février de Sonia, glissé ainsi de C5 devant B5, prend la place de son chiffre de mars, qui passe en C5.
Fait par Couper puis insérer, avec un décalage des cellules vers la droite, cet échange change aussi la somme de sa ligne en =SOMME(C5:D5), qui laisse février de côté. Les totaux des colonnes B et C changent de leur côté, puisque chaque chiffre a quitté sa colonne, et ce geste convient donc surtout à deux cellules qu’aucune somme ne lit.
Passer par une cellule tampon pour deux cellules éloignées
Pour deux cellules éloignées, comme les chiffres de mars et de janvier de Sonia en B5 et D5, une cellule vide sert d’étape. Trois copier-coller échangent alors les deux chiffres, puis la cellule d’étape se vide.
- 01
Copie B5 avec Ctrl+C, puis colle-la en H5, une cellule libre, avec Ctrl+V.
- 02
Copie D5 et colle-la en B5, par-dessus le chiffre de mars.
- 03
Copie H5 et colle-la en D5, qui reçoit ainsi l’ancien chiffre de B5.
- 04
Sélectionne H5 et vide-la avec la touche Suppr.
Les deux chiffres ont changé de place, alors que les formules de Sonia n’ont pas bougé. Sa Progression, =B5-D5, lit donc toujours B5 et D5, et passe de -300 à 300, ce qu’il faut quand deux chiffres avaient été saisis l’un à la place de l’autre. Avec Couper à la place de Copier, les formules suivraient les chiffres, et la somme de la ligne se réduirait à =SOMME(B5:C5).
Intervertir deux colonnes éloignées avec une macro VBA
Notre macro Echanger_plages intervertit deux colonnes éloignées, deux lignes ou deux blocs de cellules de même taille, que tu sélectionnes avec Ctrl. Sur l’onglet Ventes, avec B1:B7 puis D1:D7 sélectionnées, Janvier passe en B avec son en-tête et son total, pendant que Mars part en D avec son surlignage. Février reste en C, et Total T1 comme Progression gardent leurs valeurs.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Commercial | Janvier | Février | Mars | Total T1 | Progression |
| 2 | Julie | 11800 | 12900 | 14200 | 38900 | 2400 |
| 3 | Karim | 10400 | 10100 | 9600 | 30100 | -800 |
| 4 | Marc | 9900 | 11700 | 12300 | 33900 | 2400 |
| 5 | Sonia | 9050 | 9200 | 8750 | 27000 | -300 |
| 6 | Thomas | 12100 | 10850 | 11400 | 34350 | -700 |
| 7 | Total | 53250 | 54750 | 56250 | 164250 | 3000 |
La barre d’état, en bas de la fenêtre d’Excel, annonce ensuite 14 cellules échangées et 5 formules remises sur leur plage d’origine, les sommes de ligne qu’Excel aurait réduites. Les deux plages restent sélectionnées, si bien qu’une seconde exécution remet tout comme avant, formules comprises.
Sélectionner les deux plages avec la touche Ctrl
La macro échange les deux plages que tu as sélectionnées, la seconde avec la touche Ctrl enfoncée. Ce sont par exemple deux colonnes entières, cliquées par leurs lettres, deux lignes cliquées par leurs numéros, deux cellules ou deux blocs de cellules, pourvu que les deux aient le même nombre de lignes et de colonnes. Une sélection d’un seul tenant large de deux colonnes s’échange colonne contre colonne, et une sélection haute de deux lignes, ligne contre ligne.
Deux plages de tailles différentes ou qui se chevauchent sont refusées sans que rien ne bouge, et la barre d’état en donne la raison. La macro refuse de même une plage qui contient des cellules fusionnées ou qui touche le résultat d’une formule qui déborde, comme SEQUENCE. Elle refuse aussi une feuille protégée, et une feuille dont un filtre porte un critère.
Garder la somme d’une ligne quand ses colonnes s’échangent
Pour échanger les deux plages, la macro fait trois déplacements, en passant par une zone libre au bout de la feuille, et relève avant cela le texte et le résultat de chaque formule du classeur. Une formule dont Excel a changé la plage et le résultat, comme =SOMME(B2:D2), que ces trois déplacements réduiraient à =SOMME(B2:C2), reprend alors son texte d’origine, à condition qu’il redonne le résultat d’avant. Un nom défini qui couvre les deux colonnes, B2:D6 par exemple, retrouve de même sa plage.
Les autres formules suivent leurs données sans aide, comme la Progression, devenue =D2-B2, ou une formule d’une autre feuille qui lisait Ventes!B2 et lit désormais Ventes!D2. Les notes, les mises en forme conditionnelles et les règles de validation changent aussi de place avec leurs cellules. Une formule dont le résultat a changé malgré tout est enfin citée dans la barre d’état, comme =SOMME(Ventes!B:B), qui additionne toute la colonne B et lit maintenant janvier.
Choisir entre déplacer les plages et n’échanger que les valeurs
Réglée sur contenuSeul = True, la macro n’échange plus que les valeurs saisies, si bien que chaque plage garde sa mise en forme et que les formules continuent de lire les mêmes cellules. C’est le mode qui répare une saisie, comme les chiffres de janvier et de mars de Sonia, tapés l’un à la place de l’autre. Sur le tableau remis dans l’ordre, sa Progression =D5-B5 passe alors de -300 à 300, puisqu’elle lit toujours B5 et D5.
contenuSeul = FalseTrue n’échange que les valeurs saisies, en laissant la mise en forme et les formules en place. Une plage qui porte une formule est alors refusée.
Un texte comme 01000 y reste un texte, avec son zéro, et une date garde son numéro de série. Le format, lui, reste dans chaque cellule, si bien qu’une date posée dans une cellule sans format de date s’y affiche comme un nombre, 46297 pour le 02/10/2026.
Installer la macro d’échange dans un module
Ouvre l’éditeur VBA avec Alt+F11 et colle le code dans un module neuf (menu Insertion, Module). Reviens ensuite à ta feuille, sélectionne les deux plages avec Ctrl et lance Echanger_plages avec Alt+F8.
Éviter les codes VBA qui changent les formules en valeurs
Les codes d’échange que tu trouves en ligne passent souvent par les valeurs, ce qui casse les formules d’un tableau comme celui de l’onglet Ventes. Le premier type lit les deux plages en tableaux de valeurs, puis écrit chacun à la place de l’autre. Sur B1:B7 et D1:D7, les totaux de la ligne 7 deviennent alors les nombres figés 53 250 et 56 250. La Progression, restée =B2-D2, calcule de son côté janvier moins mars, et passe de 2 400 à -2 400.
Le second type fait transiter la valeur par une variable texte, déclarée As String, pour échanger deux cellules. Dans un Excel en français, la date du 02/10/2026 devient le 10/02/2026, jour et mois inversés, alors que 12,5 devient un texte et que 01000 perd son zéro. Notre macro ne fait jamais passer une valeur par du texte, et elle déplace les formules au lieu de les recopier.
Connaître les limites de la macro Echanger_plages
Ctrl+Z n’annule pas l’échange. Relance la macro sans changer la sélection pour tout remettre en place, formules comprises.
Les deux plages viennent de la feuille active et ont le même nombre de lignes et de colonnes.
La largeur des colonnes et la hauteur des lignes ne changent de place qu’avec des colonnes ou des lignes entières, sélectionnées par leurs lettres ou leurs numéros.
Une ligne masquée à la main est échangée avec les autres et reste masquée, alors qu’une feuille est refusée tant qu’un critère de filtre y est posé.
Un graphique qui trace les deux colonnes perd l’une d’elles, sa série passant de B2:D2 à B2:C2, et il faut alors refaire sa plage de données.
Une formule qui lit toute une colonne, comme =SOMME(B:B), ne suit l’échange que si tu sélectionnes les colonnes entières. Sinon, la barre d’état la cite parmi les formules dont le résultat a changé.
Sur deux colonnes entières d’une feuille de 20 000 lignes et 60 000 formules, l’échange dure environ cinq secondes, le temps de relire chaque formule du classeur.
Le compte rendu s’affiche dans la barre d’état, en bas de la fenêtre d’Excel, et la macro ne tourne pas dans Excel pour le web, qui n’exécute pas le VBA.
Tu as peut-être encore une question
Excel remplace la colonne quand le glissement se fait avec la touche Maj enfoncée, ce que l’aide de Microsoft appelle Couper et remplacer. Un rectangle épais entoure alors la colonne visée au lieu du trait posé sur une bordure, et une fenêtre prévient avant d’écrire quoi que ce soit, qui demande « Cette cellule contient déjà des données. Voulez-vous les remplacer ? » et propose OK ou Annuler. Après OK, la colonne recouverte quitte la feuille, =B2-D2 devient =D2-#REF!, le total de la ligne 2 tombe de 38 900 à 27 100 et la somme de la colonne, =SOMME(B2:B6), se vide. Relâche la touche Maj et le même glissement insère, sans rien coûter de tout cela.
Pour inverser les lignes et les colonnes d’un tableau Excel, transpose-le, en le copiant puis en choisissant Transposer parmi les options du bouton Coller, ou en écrivant la fonction TRANSPOSE, qui en renvoie une copie où chaque ligne devient une colonne. Ce n’est pas le même besoin qu’inverser deux colonnes, puisque les en-têtes des colonnes deviennent ceux des lignes.
Pour inverser l’ordre d’une colonne, numérote ses lignes 1, 2, 3 dans une colonne voisine, puis trie tout le tableau sur ces numéros par ordre décroissant, ce qui fait remonter la dernière ligne en tête et descendre la première tout en bas. La page qui explique comment inverser l’ordre d’une colonne donne aussi la formule qui le fait sans rien ajouter à la feuille, et une macro qui retourne la plage sur place.
Oui, une formule qui lit une cellule déplacée la suit à sa nouvelle place, si bien que deux coupes suivies de deux insertions changent =B2-D2 en =D2-B2 quand les colonnes de mars et de janvier échangent leur place dans le tableau. Une somme dont la colonne déplacée forme le bord peut, elle, se réduire, et un copier-coller ne fait rien suivre du tout.
Oui, une colonne se glisse par son bord entre deux autres sur Mac comme sur Windows, et notre macro n’appelle aucune fonction propre à Windows. L’aide de Microsoft pour Mac ajoute la touche Maj, alors que sur Excel 365 en français pour Windows c’est le glissement sans touche qui insère et la touche Maj qui recouvre. Regarde donc ce que ta feuille affiche avant de lâcher la souris, un trait posé sur une bordure ou un rectangle autour d’une colonne, et garde Ctrl+Z à portée.
Pour aller plus loin
Tout ce dont tu as besoin pour faire tourner tes macros et progresser sur Excel se trouve ici.

Télécharge notre cours Excel complet en PDF
Télécharger
Ton cours Excel gratuit
3 chapitres pour apprendre les bases et découvrir l'automatisation.
Voir le cours
Entraîne-toi sur nos 63 exercices corrigés
S’entraîner
Les macros Excel et le VBA expliqués simplement
Lire le guide
Activer les macros quand Excel les bloque
Voir comment