web-dev-qa-db-fra.com

Comment réorganiser facilement des lignes dans Excel avec un glisser-déposer ou une montée ou une descente?

Je dois effectuer des réordonnances manuelles ou des lignes dans Excel et couper/coller est trop difficile à utiliser. Je recherche quelque chose qui me permette d’utiliser drag'n'drop ou d’ajouter des boutons pour monter/descendre et aller en haut/en bas.

135
sorin
  1. Sélectionnez la ligne/colonne.
  2. Déplacez le curseur de votre souris sur la limite de la ligne/colonne de manière à afficher le curseur à quatre flèches (ou le curseur de la main sur un Mac).
  3. Presse Shift sur votre clavier, puis cliquez et faites glisser la ligne/colonne.

Le Shift clé décale la ligne/colonne au lieu de remplacer la ligne/colonne cible.

202
kok

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éplacer la ligne 8 au-dessus de la ligne 5)

  1. Cliquez avec le bouton droit sur le numéro de ligne (par exemple, la ligne 8), cliquez sur Couper (ou T)
  2. Cliquez avec le bouton droit sur le numéro de ligne (par exemple, la ligne 5), cliquez sur Insérer les cellules coupées (ou E)

Remarque: cela fonctionne également pour déplacer plusieurs lignes.

12
wilson

Essayer:

Shift + Space bar ou un clic de souris sur le numéro de ligne pour sélectionner la ligne

Ctrl + X couper

Clic de souris où vous le voulez.

Ctrl + V pour le coller

4
Graham

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
3
tjmcewan

Sous Mac, utilisez Command + Shift en faisant glisser. Je suppose que dans Windows il devrait être Win + Shift.

2
pablol

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 de 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.

  1. 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
  2. Collez les données dans un document Microsoft Word, où il devient automatiquement un tableau et conserve toute votre mise en forme.
  3. 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.

    enter image description here

    Appuyez sur Shift + Alt + UpArrow plusieurs fois pour faire glisser rapidement les lignes dans leur position.

    enter image description here

  4. 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é.

2
jzd

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
1
Micromegas

C'est le plus facile que j'ai trouvé. Ne peut pas vraiment glisser-déposer:

Par exemple, pour déplacer la ligne 3 avant la ligne 2:

  • faites un clic droit sur la rangée 3 (sur le chiffre 3 à gauche) et sélectionnez Couper
  • faites un clic droit sur la ligne 2 (sur le nombre 2) et sélectionnez Insérer des cellules coupées
1
mrudult

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 de ligne (par exemple, la ligne 5)

Mélanger l'utilisation de la souris et du clavier accélère vraiment pour moi.

1
Codemonkey