Réponses:
La Shiftclé décale la ligne / colonne au lieu de remplacer la ligne / colonne cible.
C’est toujours une méthode couper / coller, mais c’est le moyen le plus simple auquel je puisse penser.
Solution en 4 clics: (par exemple, déplacez la ligne 8 au-dessus de la ligne 5)
Remarque: cela fonctionne également pour déplacer plusieurs lignes.
Ajoutez les macros suivantes à votre classeur de macros personnelles et affectez-leur des touches de raccourci. Ce comportement imite les lignes Swap Line Up & Swap Line Down de Sublime Text.
Sub move_rows_down()
Dim rOriginalSelection As Range
Set rOriginalSelection = Selection.EntireRow
With rOriginalSelection
.Select
.Cut
.Offset(rOriginalSelection.rows.Count + 1, 0).Select
End With
Selection.Insert
rOriginalSelection.Select
End Sub
Sub move_rows_up()
Dim rOriginalSelection As Range
Set rOriginalSelection = Selection.EntireRow
With rOriginalSelection
.Select
.Cut
.Offset(-1, 0).Select
End With
Selection.Insert
rOriginalSelection.Select
End Sub
Dans le passé, dans le cas de cas similaires, où je ne pouvais pas simplement trier par rangée, j’avais trouvé le moyen de générer une colonne avec un résultat de formule que je pouvais trier.
J'ai trouvé une réponse plus directe à votre question sur ce site :
Microsoft Word a une fonctionnalité qui manque à Excel. La méthode de Jon consiste à déplacer les données dans Word, à l'aide de la commande Word, puis à les coller à nouveau dans Excel. Suivez ces étapes.
- Copiez le bloc de lignes et de colonnes correspondant dans votre feuille de calcul. Il est préférable de noter la taille de la plage, par exemple, 118 lignes x 5 colonnes
- Collez les données dans un document Microsoft Word, où il devient automatiquement un tableau et conserve toute votre mise en forme.
Dans Word, utilisez les commandes SHIFT-ALT-UP-ARROW et SHIFT-ALT-DOWN-ARROW, peu connues, pour faire glisser très rapidement les lignes (ou des morceaux de lignes sélectionnés) vers le haut ou le bas. Sélectionnez une ou plusieurs lignes. Vous pouvez sélectionner la ligne entière ou seulement une partie de la ligne, comme indiqué ici.
Appuyez sur Shift + Alt + UpArrow plusieurs fois pour faire glisser rapidement les lignes dans leur position.
Lorsque vous avez séquencé les lignes à votre guise, collez-les dans Excel, en vous assurant de remplacer le bloc de taille exacte que vous avez copié.
Une légère amélioration sur la réponse de @ wilson:
Cliquez avec le bouton droit sur le numéro de ligne (par exemple la ligne 8), tapez "t" Cliquez avec le bouton droit de la souris sur le numéro (tels que la ligne 5), appuyez sur "e"
Mélanger l'utilisation de la souris et du clavier accélère vraiment pour moi.
Voici un sous qui fonctionne également pour les colonnes; il combine la fonctionnalité pour les quatre directions:
Sub MoveRowsOrColumns(direction As String)
Dim rOriginalSelection As Range
Select Case direction
Case "up", "down"
Set rOriginalSelection = Selection.EntireRow
Case "left", "right"
Set rOriginalSelection = Selection.EntireColumn
Case Else
Debug.Assert False
End Select
With rOriginalSelection
.Select
.Cut
Select Case direction
Case "up"
.Offset(-1, 0).Select
Case "down"
.Offset(rOriginalSelection.Rows.Count + 1, 0).Select
Case "left"
.Offset(0, -1).Select
Case "right"
.Offset(0, rOriginalSelection.Columns.Count + 1).Select
End Select
End With
Selection.Insert
rOriginalSelection.Select
End Sub
C'est le plus facile que j'ai trouvé. Ne peut pas vraiment glisser et déposer:
Par exemple, pour déplacer la ligne 3 avant la ligne 2: