XL 2010 Déplacer une données et faire en sorte que la colonne suit

arnaudbu

XLDnaute Occasionnel
Bonjour,

Ligne 1 de A à AQ j'ai des noms. J'aimerais que si je déplace un nom, les valeurs dans la colonne associées suivent.

Quelle technique utilisée ?

Merci.
 

Pièces jointes

  • Classeur2.xlsx
    159.6 KB · Affichages: 42

Modeste

XLDnaute Barbatruc
Re : Déplacer une données et faire en sorte que la colonne suit

Bonjour arnaudbu,

C'est un peu vague, comme question ...
Pourquoi pas un clic droit sur l'en-tête (la lettre) de la colonne à déplacer > Couper, suivi d'un autre clic droit sur l'en-tête de la colonne devant laquelle tu veux insérer la colonne coupée > Insérer les cellules coupées :confused:
 

ROGER2327

XLDnaute Barbatruc
Re : Déplacer une données et faire en sorte que la colonne suit

Bonjour arnaudbu, Modeste.


Un truc tiré de mes archives en pièce jointe. Mais vu le flou de la demande, ce n'est peut-être pas ce qu'il faut...​


Bonne soirée.


ℝOGER2327
#8276


Mercredi 4 Gidouille 143 (Sainte Tripe, républicaine - fête Suprême Quarte)
30 Prairial An CCXXIV, 6,7681h - chariot
2016-W24-6T16:14:36Z
 

Pièces jointes

  • Déplacer une colonne (valeurs seules).xlsm
    28.2 KB · Affichages: 38

job75

XLDnaute Barbatruc
Re : Déplacer une données et faire en sorte que la colonne suit

Bonjour arnaudbu, Modeste, Roger,

Je suppose qu'arnaudbu n'a pas d'idée particulière sur la manière de déplacer le nom et sa colonne.

Alors voici une méthode très simple puisqu'il suffit de sélectionner les cellules en ligne 1.

La macro par contre n'est pas très simple :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cc%, T As Range, col%, P As Range, I As Range
Static OK As Boolean 'contrôle de sécurité
With [A1].CurrentRegion 'adapter éventuellement
  cc = .Columns.Count
  Set T = .EntireRow
End With
If Target.Count > 1 Or Target.Row > 1 Or Target.Column < 3 Then End 'RAZ
If OK And Application.CutCopyMode = 2 And Target.Column < cc + 2 Then
  Target.Insert xlToRight
  If T.Rows.Count > 1 Then
    Set T = T.Offset(1).Resize(T.Rows.Count - 1) 'en-têtes non comprises
    For col = 4 To cc
      If col Mod 2 Then
        Set I = Union(IIf(I Is Nothing, T.Columns(col), I), T.Columns(col))
      Else
        Set P = Union(IIf(P Is Nothing, T.Columns(col), P), T.Columns(col))
      End If
    Next
    If Not I Is Nothing Then I.Interior.ColorIndex = xlNone
    If Not P Is Nothing Then P.Interior.Color = 11851260 'couleur modifiable
    Set T = Union(T.Rows(0), T)
  End If
End If
If Target.Column > 3 And Target.Column <= cc Then
  OK = True
  Intersect(T, ActiveCell.EntireColumn).Cut
End If
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Déplacer colonne(1).xlsm
    160.7 KB · Affichages: 24

ROGER2327

XLDnaute Barbatruc
Re : Déplacer une données et faire en sorte que la colonne suit

Suite...


... du message #3 : une variante pour ceux qui trouveraient le mode d'emploi de la première version trop compliqué.​


Bonne soirée.


ℝOGER2327
#8277


Jeudi 5 Gidouille 143 (Saint Ugolin, mansuet - fête Suprême Quarte)
1[SUP]er[/SUP] Messidor An CCXXIV, 7,1565h - seigle
2016-W24-7T17:10:32Z
 

Pièces jointes

  • Déplacer une colonne (valeurs seules).xlsm
    39.6 KB · Affichages: 26

job75

XLDnaute Barbatruc
Re : Déplacer une données et faire en sorte que la colonne suit

Re,

Oui Roger, et chez moi aussi ceci est nettement mieux :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cc%, T As Range, col%, P As Range, I As Range
Static OK As Boolean 'contrôle de sécurité
With [A1].CurrentRegion 'adapter éventuellement
  cc = .Columns.Count
  Set T = .EntireRow
End With
If Target.Count > 1 Or Target.Row > 1 Or Target.Column < 4 Then End 'RAZ
If OK And Application.CutCopyMode = 2 And Target.Column < cc + 2 Then
  Target.Insert xlToRight
  If T.Rows.Count > 1 Then
    Set T = T.Offset(1).Resize(T.Rows.Count - 1) 'en-têtes non comprises
    For col = 4 To cc
      If col Mod 2 Then
        Set I = Union(IIf(I Is Nothing, T.Columns(col), I), T.Columns(col))
      Else
        Set P = Union(IIf(P Is Nothing, T.Columns(col), P), T.Columns(col))
      End If
    Next
    If Not I Is Nothing Then I.Interior.ColorIndex = xlNone
    If Not P Is Nothing Then P.Interior.Color = 11851260 'couleur modifiable
    Set T = Union(T.Rows(0), T): Set Target = Target(1, 0)
    Application.EnableEvents = 0: Target.Select: Application.EnableEvents = -1
  End If
End If
If Target.Column <= cc Then
  OK = True
  T.Columns(Target.Column).Cut
End If
End Sub
Bien entendu à tout moment on peut quitter le mode "Couper" par la touche <échap>.

Fichier (2).

Bonne soirée.
 

Pièces jointes

  • Déplacer colonne(2).xlsm
    161 KB · Affichages: 25

job75

XLDnaute Barbatruc
Re : Déplacer une données et faire en sorte que la colonne suit

Bonjour arnaudbu, Modeste, Roger,

Avec ce fichier (3) la position du tableau peut être quelconque.

La 1ère cellule est nommée "Debut".

A+
 

Pièces jointes

  • Déplacer colonne(3).xlsm
    161.3 KB · Affichages: 22

arnaudbu

XLDnaute Occasionnel
Re : Déplacer une données et faire en sorte que la colonne suit

Merci. désolé pour la petite absence mais la solution de ℝOGER2327 est exactement ce qu'il faut. Je me met tout vos codes de côtés et vais les étudier. J'ai de quoi faire. Encore merci ;)
 

Discussions similaires

Réponses
12
Affichages
299

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175