inversion données cellule

pieralain

XLDnaute Nouveau
bonjour,

je voudrais inverser les données de 2 cellules

ex: A1 X
B1 Y
en
A1 Y
B1 X

comment faire ?

merci par avance
 

SubEndSub

XLDnaute Occasionnel
Re : inversion données cellule

Bonjour chez vous


Une solution par macro
Code:
Sub Macro()
Columns("A:A").Insert Shift:=xlToRight
[C1].Cut [A1]
End Sub

Une solution qui inverse et vice et versa
(fonctionne avec chiffres et lettres (pour les lettres un seul caractère) )
Code:
Sub Macro2()
Range("A1:B1").Sort _
    Key1:=Range("A1"), _
    Order1:=Switch([A1] > [B1], xlAscending, [A1] < [B1], xlDescending), _
    Header:=xlGuess, _
    OrderCustom:=1, _
    MatchCase:=False, _
    Orientation:=xlLeftToRight
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : inversion données cellule

Bonjour pieralain, SubEndSub,

Si l'on veut seulement inverser 2 cellules, on peut utiliser aussi :

Code:
Sub Inverser()
Dim F$
F = [A1].Formula
[A1].Formula = [B1].Formula
[B1].Formula = F
End Sub

Mais si l'on veut inverser des plages de cellules ou utiliser une macro évènementielle Worksheet_Change, c'est plus compliqué, et il faudrait préciser.

A+
 

SubEndSub

XLDnaute Occasionnel
Re : inversion données cellule

Bonjour chez vous


Tu peux faire cela avec le menu Données/Trier

Tu sélectionnes A1 : B1

Données/Trier

Options : cocher De la gauche vers la droite

Puis choisir selon le cas : Croissant ou Décroissant

C'est ce fait que la macro : Macro2
 

job75

XLDnaute Barbatruc
Re : inversion données cellule

Re,

pieralain, sans macro les cellules A1 et B1 ne s'inversent pas toutes seules, vous devez le savoir.

Mais on peut toujours faire manuellement ce que SubEndSub propose (à peu près) dans sa 1ère macro, à savoir :

- sélectionner B1, clic droit => Couper

- sélectionner A1, clic droit => Insérer les cellules coupées.

A+
 

Discussions similaires

Réponses
2
Affichages
118
Réponses
5
Affichages
298

Statistiques des forums

Discussions
312 206
Messages
2 086 202
Membres
103 157
dernier inscrit
youma