Excel a depuis longtemps inclus la possibilité de fusionner des cellules adjacentes en une seule cellule plus grande. Cette capacité a été utilisée par de nombreux concepteurs de feuilles de calcul pour donner à leurs feuilles de calcul un aspect professionnel et soigné.

Cependant, l’utilisation de cellules fusionnées présente un inconvénient majeur: vous ne pouvez pas trier les tableaux qui les incluent. Si vous essayez, vous obtiendrez un message indiquant: « L’opération nécessite que les cellules fusionnées soient de taille identique. »

La solution la plus évidente au problème est de ne pas utiliser de cellules fusionnées.

Disons, par exemple, que vous avez une feuille de calcul dans laquelle chaque « enregistrement » se compose en fait de deux lignes, et que la première colonne de la feuille de calcul contient des cellules fusionnées. (Chaque enregistrement de deux lignes commence par deux cellules fusionnées couvrant les deux lignes. Cette cellule fusionnée contient un nom de projet.)

Il est préférable d’annuler la fusion des cellules de la première colonne, mais vous pouvez alors vous demander comment faire trier correctement les enregistrements dans la feuille de calcul; comment garder les paires de lignes ensemble pendant un tri. Vous pouvez le faire en mettant le nom de votre projet dans la première ligne et le nom du projet ajouté avec « zz » dans la deuxième ligne. Par exemple, si la première ligne contient «Wilburn Chemical» (le nom du projet), alors la deuxième ligne peut contenir «Wilburn Chemicalzz». Mettez en forme la cellule de la deuxième ligne de sorte que le nom n’apparaisse pas (par exemple, du texte blanc sur fond blanc), et vous pouvez ensuite trier avec succès comme vous le souhaitez.

Une autre solution consiste à utiliser une macro pour jongler avec votre feuille de calcul et effectuer le tri. En supposant que les cellules fusionnées se trouvent dans la colonne A (comme décrit précédemment), vous pouvez utiliser la macro suivante pour trier les données en fonction du contenu de la colonne A:

Sub SortList()

Dim sAddStart As String     Dim rng As Range     Dim rng2 As Range     Dim lRows As Long

Application.ScreenUpdating = False     sAddStart = Selection.Address     Set rng = Range("A1").CurrentRegion

With rng         lRows = .Rows.Count - 1         .Cells(1).EntireColumn.Insert         .Cells(1).Offset(0, -1) = "Temp"

.Cells(1).Offset(1, -1).FormulaR1C1 = _           "=+RC[1]&"" ""&ROW()"

.Cells(1).Offset(2, -1).FormulaR1C1 = _           "=+R[-1]C[1]&"" ""&ROW()"

Set rng2 = .Cells(1).Offset(1, -1).Resize(lRows, 1)

Range(.Cells(2, 0), .Cells(3, 0)).AutoFill _             Destination:=rng2         rng2.Copy         rng2.PasteSpecial Paste:=xlValues

.Columns(1).MergeCells = False

.CurrentRegion.Sort _         Key1:=Range("A2"), Order1:=xlAscending, _         Header:=xlYes, OrderCustom:=1, _         MatchCase:=False, Orientation:=xlTopToBottom

rng2.EntireColumn.Delete

With Range(.Cells(2, 1), .Cells(3, 1))

.Merge             .Copy             .Cells(3, 1).Resize(lRows - 2, 1). _                 PasteSpecial Paste:=xlFormats         End With     End With     Application.CutCopyMode = False     Range(sAddStart).Select     Application.ScreenUpdating = True End Sub

La macro insère une colonne temporaire, lit les éléments de la première colonne de la liste, ajoute le numéro de ligne, le copie dans la colonne temporaire, annule la fusion des cellules, trie la liste, supprime la colonne temporaire et re-fusionne la colonne A. (C’est beaucoup de travail juste pour trier un tableau avec des cellules fusionnées!)

Cette macro est très spécifique à une mise en page particulière de vos données, et devrait donc être testée et probablement modifiée pour s’assurer qu’elle fonctionnerait avec des données formatées d’une autre manière.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (761) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Sorting_Data_Containing_Merged_Cells [Tri des données contenant des cellules fusionnées].