copier coller colonne dans ordre différent sur autre feuille

phil69

XLDnaute Occasionnel
Bonsoir à toutes et tous

j'ai un classeur que j'alimente depuis un site dont les informations ne m’intéressent pas toutes et pas dans l'ordre que je souhaite. Je voudrais récupérer ces info et les mettre dans une autre feuille(2) avec les colonnes dans un ordre différent.
doit je faire une macro copier de chaque colonne (à savoir que les colonne peuvent faire 2 lignes comme 200) et les coller sur ma nouvelle feuille2??? avec quelle code, ou sélectionner les contenus des colonne dans un ordre précis pour les coller dans ma nouvelle feuille2???? . de plus le contenu de la feuille d’extraction est supprimé pour être de nouveau alimenté par le site et les info devront se coller sur ma feuille2 à la suite
merci
phil69
 

Pièces jointes

  • map site ce.xls
    36.5 KB · Affichages: 65

Paf

XLDnaute Barbatruc
Re : copier coller colonne dans ordre différent sur autre feuille

Bonjour

un code volontairement rustique, qui vous permet de modifier facilement l'ordre des colonnes . Fonctionne si en feuille 1 la ligne de titre est toujours en ligne 2.

Code:
Sub Transfert_phil69()
 Dim H, F, G, D, K, L, M, I
 Dim F1 As Worksheet, F2 As Worksheet, DerLig As Long, LigDep As Long

 Set F1 = Worksheets("Feuil1")
 Set F2 = Worksheets("Feuil2")
    
 DerLig = F1.Range("A" & Rows.Count).End(xlUp).Row

 With F1
 H = .Range("H3:H" & DerLig)   ' "mémorise" la colonne H
 F = .Range("F3:F" & DerLig)   ' "mémorise" la colonne F
 G = .Range("G3:G" & DerLig)   '  ...
 D = .Range("D3:H" & DerLig)
 K = .Range("K3:K" & DerLig)
 L = .Range("L3:L" & DerLig)
 M = .Range("M3:M" & DerLig)
 I = .Range("I3:I" & DerLig)
 End With

 LigDep = F2.Range("A" & Rows.Count).End(xlUp).Row + 1
 With F2
 .Range("A" & LigDep).Resize(UBound(H)) = H  ' copie le contenu de la colonne H en A
 .Range("B" & LigDep).Resize(UBound(F)) = F   '...
 .Range("C" & LigDep).Resize(UBound(G)) = G
 .Range("D" & LigDep).Resize(UBound(D)) = D
 .Range("E" & LigDep).Resize(UBound(K)) = K
 .Range("F" & LigDep).Resize(UBound(L)) = L
 .Range("G" & LigDep).Resize(UBound(M)) = M
 .Range("H" & LigDep).Resize(UBound(I)) = I
 End With

 F1.Cells.ClearContents

End Sub

A+
 

DoubleZero

XLDnaute Barbatruc
Re : copier coller colonne dans ordre différent sur autre feuille

Bonjour, phil69, Paf :), le Forum,

... Fonctionne si en feuille 1 la ligne de titre est toujours en ligne 2...

Il en est de même avec le code ci-après :

Code:
Option Explicit
Sub Informations_transférer()
    Dim où As Object
    Set où = Sheets("Feuil2")
    With Application: .ScreenUpdating = 0: .Calculation = xlCalculationManual: End With
    With Sheets("Feuil1")
        .Columns(4).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("d" & Rows.Count).End(xlUp)(2)
        .Columns(6).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("b" & Rows.Count).End(xlUp)(2)
        .Columns(7).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("c" & Rows.Count).End(xlUp)(2)
        .Columns(8).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("a" & Rows.Count).End(xlUp)(2)
        .Columns(9).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("h" & Rows.Count).End(xlUp)(2)
        .Columns(11).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("e" & Rows.Count).End(xlUp)(2)
        .Columns(12).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("f" & Rows.Count).End(xlUp)(2)
        .Columns(13).SpecialCells(xlCellTypeConstants, 23).Offset(1, 0).Copy Destination:=où.Range("g" & Rows.Count).End(xlUp)(2)
    End With
    With Application: .ScreenUpdating = -1: .Calculation = xlCalculationAutomatic: End With
End Sub

A bientôt :)
 

Paf

XLDnaute Barbatruc
Re : copier coller colonne dans ordre différent sur autre feuille

Re tous, bonjour chris

néophyte en filtre avancé, j'ai tenté, mais je bute sur un point :

est-il possible de rajouter le résultat du filtre à la suite de données existantes issues du même filtre ?

Bonne journée
 

chris

XLDnaute Barbatruc
Re : copier coller colonne dans ordre différent sur autre feuille

Re

Non les filtres avancés sont "one shot" : je n'avais pas lu "à la suite" :eek:...

Tester néanmoins le temps entre les interversions et un copier coller de l’extrait à la suite des autres (les filtres avancés sont en géréral très rapides).
 

klin89

XLDnaute Accro
Re : copier coller colonne dans ordre différent sur autre feuille

Bonsoir à tous,
Vois ceci :
VB:
Sub Recopie()
Dim a
    With Sheets("Feuil1").Range("A2").CurrentRegion
        a = Application.Index(.Value, Evaluate("row(1:" & _
                                               .Rows.Count & ")"), Array(8, 6, 7, 4, 11, 12, 13, 9))
    End With
    With Sheets("Feuil2").Range("A2").Resize(UBound(a, 1), UBound(a, 2))
        .Value = a
    End With
End Sub
klin89
 

Si...

XLDnaute Barbatruc
Re : copier coller colonne dans ordre différent sur autre feuille

salut

une toute autre façon de procéder en utilisant l'outil Tableau.
 

Pièces jointes

  • Dipstacher certaines colonnes (utilisation d'un tableau).xlsm
    22.6 KB · Affichages: 123

Discussions similaires

Réponses
12
Affichages
247

Statistiques des forums

Discussions
312 299
Messages
2 086 998
Membres
103 429
dernier inscrit
PhilippeH