Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro dépalcer des colonnes ?

  • Initiateur de la discussion Initiateur de la discussion DJ FA
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

DJ FA

XLDnaute Occasionnel
Bonsoir j'aurais besoin d'un macro qui me déplacerais les colonnes en fonction d'un nom par exemple :
Je veux que:
la colonne C du nom "Aurevoir" soit placée en colonne A de la feuille 2
la colonne D du nom "POT" soit placée en colonne B de la feuille 2.

J'en ai 8 à faire. 😕

Merci
 

Pièces jointes

Re : Macro dépalcer des colonnes ?

Bonjour à tous,


Un essai :​
VB:
Sub coupe()
Dim i&, j&, tbl()
Const Orig$ = "Feuil1" 'Nom de l'onglet de destination.
Const Dest$ = "Feuil2" 'Nom de l'onglet de destination.
Const NCol& = 99 'Nb. de cellules d'en-tête à traiter dans l'onglet d'origine.

    tbl = Array(Array("ALLO", "@"), Array("BONJOUR", "@"), Array("AUREVOIR", "A"), _
        Array("POT", "B"), Array("MAMAN", "@"), Array("BEBE", "@"))
        'Complètez la liste à votre convenance. Les champs associés à "@" sont ignorés.

    With Worksheets(Orig)
        For i = 0 To UBound(tbl)
            If Not tbl(i)(1) = "@" Then
                For j = 1 To NCol
                    If .Cells(1, j).Value = tbl(i)(0) Then Exit For
                Next
                If j <= NCol Then .Columns(j).Cut Destination:=Worksheets(Dest).Range(tbl(i)(1) & "1")
            End If
        Next
    End With
End Sub


ROGER2327
#6299


Dimanche 15 Sable 140 (Khurmookum du Dr Faustroll - fête Suprême Seconde)
25 Frimaire An CCXXI, 7,0618h - grillon
2012-W50-6T16:56:54Z
 
Re : Macro dépalcer des colonnes ?


Je test ce soir.
 
Re : Macro dépalcer des colonnes ?

Bonjour DJ FA, Roger,

Une solution par double-clic en ligne 1 :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 1 Then Exit Sub
Cancel = True
With Feuil2.[IV1].End(xlToLeft) 'CodeName de la feuille
  Target.EntireColumn.Copy .Cells.Offset(, -(.Text <> ""))
  Target.EntireColumn.Delete
End With
End Sub
Fichier joint.

Nota : s'il y a des formules il peut y avoir des problèmes...

A+
 

Pièces jointes

Re : Macro dépalcer des colonnes ?

Re,

On peut utiliser Cut, mais alors il faut utiliser ActiveCell :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 1 Then Exit Sub
Cancel = True
With Feuil2.[IV1].End(xlToLeft) 'CodeName de la feuille
  Target.EntireColumn.Cut .Cells.Offset(, -(.Text <> ""))
  ActiveCell.EntireColumn.Delete
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
307
Réponses
4
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…