David ajoutait des sous-totaux (Données | Sous-totaux) à de grandes feuilles de calcul et cherchait un moyen de déplacer les cellules du sous-total vers différentes cellules. Par exemple, supposons que lorsque Excel a ajouté les sous-totaux automatiques, ils ont été ajoutés dans la colonne S, et la formule SOUS-TOTAL ajoutée par Excel faisait référence aux plages de cellules de la colonne S. David voulait déplacer les formules SOUS-TOTAL (et uniquement ces formules) hors de de la colonne S à la colonne T, et les formules font toujours référence au détail de la colonne S.

Une option consiste à parcourir et à déplacer les formules SOUS-TOTAL, une à la fois, aux emplacements souhaités. (Vous utiliseriez Ctrl + X et Ctrl + V pour déplacer les cellules, plutôt que Ctrl + C et Ctrl + V pour simplement créer des copies des cellules.) Si les feuilles de calcul sont volumineuses, avec de nombreux sous-totaux, cela peut devenir très fastidieux. rapidement.

L’ennui dans Excel est souvent la principale motivation pour créer une macro. Ce cas ne fait pas exception. Il est possible de créer une macro qui effectuera le déplacement réel des formules SOUS-TOTAL. Prenons l’exemple suivant:

Sub MoveSubtotals()

Dim rCell As Range     Dim rng As Range     Dim iCol As Integer     Dim iOffset As Integer

iCol = 19  '19 is Column S     iOffset = 1 'Positives go right, negatives go left     Set rng = Intersect(Selection.CurrentRegion, Columns(iCol))

For Each rCell In rng         If InStr(rCell.Formula, "SUBTOTAL") Then             rCell.Offset(0, iOffset).Formula = _                 rCell.Formula             rCell.ClearContents         End If     Next End Sub

Cet exemple fonctionne en examinant chaque cellule sélectionnée dans la colonne S. Si la formule de la cellule contient le mot SOUS-TOTAL, la formule est copiée d’une colonne vers la droite, dans la colonne T, et supprimée de la cellule de la colonne S. Vous pouvez modifier la distance à gauche ou à droite à laquelle les sous-totaux sont déplacés en changeant simplement la valeur attribuée à la variable iOffset. (Notez que vous devez exécuter la macro avec une plage de cellules sélectionnée, et une partie de cette sélection doit inclure la colonne S.)

_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 (2119) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

lien: / excelribbon-Moving_Subtotals [Déplacement des sous-totaux].