web-dev-qa-db-fra.com

Permuter le contenu des cellules dans Excel?

Existe-t-il un moyen simple d’échanger le contenu de deux cellules dans Microsoft Excel?

Par facile, j'entends un raccourci clavier ou un élément de menu, sans impliquer de copie dans des cellules temporaires ni d'écrire des scripts VBA ou quelque chose du genre. En d'autres termes, je cherche un moyen de sélectionner simplement deux cellules et de cliquer sur un élément du menu ou d'appuyer sur une combinaison de touches qui permette d'échanger leur contenu. Sûrement, il doit y avoir un moyen de faire cela?

39
Dan Moulding

De: http://www.extendoffice.com/documents/Excel/860-Excel-swap-contents-of-two-cells.html

Parfois, il faut échanger deux cellules adjacentes. Nous pouvons le faire manuellement facilement. Regardez la capture d'écran suivante, je veux échanger les cellules A4 et B4, procédez comme suit:

 enter image description here

  1. Sélectionnez la cellule que vous souhaitez échanger. Dans cet exemple, sélectionnez la cellule A4.

  2. Appuyez sur la touche Maj et placez le curseur sur le bord droit.

  3. Ensuite, faites glisser le curseur sur le bord droit de la cellule B4.

  4. Quand il affiche «», relâchez la souris.

  5. Et le contenu des deux cellules a été échangé.

 enter image description here

Avec cette méthode, nous pouvons également échanger deux lignes ou colonnes adjacentes.

47
user190216

Pour le cas spécifique de plages rectangulaires adjacentes de même taille , vous pouvez utiliser la méthode décrite dans cette réponse à une question similaire .

  1. Sélectionnez la plage droite ou inférieure
  2. Presse Ctrl+X
  3. Sélectionnez la plage adjacente (c'est-à-dire directement au-dessus ou à gauche)
  4. Presse Ctrl++ (le + est généralement supérieur à la clé = de sorte que cela se traduit par Ctrl+Shift+=)

Notez que vous pouvez utiliser la même procédure pour échanger des lignes ou des colonnes adjacentes entières.

16
Jonas Heidelberg

Par facile, j'entends un raccourci clavier ou un élément de menu, sans impliquer de copie dans des cellules temporaires ni d'écriture de scripts VBA ou quoi que ce soit du genre. Je cherche un moyen de sélectionner simplement deux cellules et de cliquer sur un élément de menu ou d'appuyer sur une combinaison de touches qui permette d'échanger leur contenu.

Pourquoi imposer cette restriction? Créer une macro rend cela trivial. Autant que je sache, cela ne peut pas être fait autrement. Vous pouvez affecter la macro à un bouton ou à un raccourci clavier.

Sub Swap()     
    If Selection.Count <> 2 Then     
         MsgBox "Select 2 cells (only) to swap."     
         Exit Sub     
    End If     
    Set trange = Selection     
    If trange.Areas.Count = 2 Then     
         temp = trange.Areas(2)     
         trange.Areas(2) = trange.Areas(1)     
         trange.Areas(1) = temp     
    Else     
         temp = trange(1)     
         trange(1) = trange(2)     
         trange(2) = temp     
    End If     
End Sub     
14
ghoppe

Non. Il n'est pas possible d'échanger le contenu de deux cellules dans Excel sans écrire votre propre macro pour le faire.

EDIT: Il semble qu’il existe désormais un moyen simple d’échanger le contenu des cellules dans les versions plus récentes d’Excel. Cette réponse est donc probablement obsolète.

4
Dan Moulding

Sélectionnez le premier ensemble de cellules à échanger et à frapper ctrl+x:

Sélectionnez les cellules à côté de celles avec lesquelles vous souhaitez échanger et appuyez sur ctrl++.

2
user287020

Vous pouvez coller jusqu'à 25 éléments dans le Presse-papiers, ils sont donc faciles à échanger avec ctr + tab ou cmd + tab mac

0
Aaron

J'ai lu ce post, mais j'avais en fait besoin d'une macro pour échanger des gammes complètes. De plus, j'avais besoin d'échanger les couleurs. Modded légèrement la macro publiée à l'origine, cela pourrait être utile pour quelqu'un.

Sub Swap()

    If Selection.Areas.Count <> 2 Then
         MsgBox "Select 2 cell ranges (only) to swap."
         Exit Sub
    End If


    If Selection.Areas(1).Count <> Selection.Areas(2).Count Then
         MsgBox "The two areas must be of equal size"
         Exit Sub
    End If

    'With this for loop we run through each cell 1 by 1
    For i = 1 To Selection.Areas(1).Count
        'Swapping values
        temp = Selection.Areas(1)(i)
        Selection.Areas(1)(i) = Selection.Areas(2)(i)
        Selection.Areas(2)(i) = temp

        'Swapping color
        tempColor = Selection.Areas(1)(i).DisplayFormat.Interior.Color
        Selection.Areas(1)(i).Interior.Color = Selection.Areas(2)(i).DisplayFormat.Interior.Color
        Selection.Areas(2)(i).Interior.Color = tempColor
    Next i

End Sub
0
Ivo van der Marel

Sélectionnez la cellule du bas que vous souhaitez permuter Appuyez sur Ctrl + x et accédez à la cellule que vous souhaitez permuter avec Appuyez sur Ctrl + Maj + = l’échange sera exécuté.

0
mehndiratta co