Tri des données contenant des cellules fusionnées (Microsoft Excel)
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]
.