Copier coller des colonnes à la suite

Bonjour,

j'ai essayé de copier coller des colonnes d'un onglet à un autre. Jusque là tout va bien. Cependant, lors du collage, je me retrouve avec la colonne 56 de mon onglet d'extraction collé à la colonne 56 dans le nouvel onglet. J'aimerais que les colonnes que j'extrais soient collées les unes à la suites des autres. Voici mon code:

Sub TRAITEMENT()

Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "TREATED DATA"

With Sheets("ALL DATA")

.Activate

Columns(1).Select

Selection.Copy

Sheets("TREATED DATA").PasteSpecial

End With

With Sheets("ALL DATA")

.Activate

Columns(2).Select

Selection.Copy

Sheets("TREATED DATA").PasteSpecial

End With

With Sheets("ALL DATA")

.Activate

Columns(3).Select

Selection.Copy

Sheets("TREATED DATA").PasteSpecial

End With

With Sheets("ALL DATA")

.Activate

Columns(11).Select

Selection.Copy

Sheets("TREATED DATA").PasteSpecial

End With

With Sheets("ALL DATA")

.Activate

Columns(12).Select

Selection.Copy

Sheets("TREATED DATA").PasteSpecial

End With

With Sheets("ALL DATA")

.Activate

Columns(37).Select

Selection.Copy

Sheets("TREATED DATA").PasteSpecial

End With

With Sheets("ALL DATA")

.Activate

Columns(56).Select

Selection.Copy

Sheets("TREATED DATA").PasteSpecial

End With

End Sub

En vous remerciant,

Bonjour,

à tester,

Sub TRAITEMENT()
col = Array(1, 2, 3, 11, 12, 37, 56)
c = 1
Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "TREATED DATA"

For i = LBound(col) To UBound(col)
    Sheets("ALL DATA").Columns(col(i)).Copy Sheets("TREATED DATA").Cells(1, c)
    c = Sheets("TREATED DATA").Cells(1, Columns.Count).End(xlToLeft).Column + 1
Next i
End Sub

Bonjour,

à tester,

Sub TRAITEMENT()
col = Array(1, 2, 3, 11, 12, 37, 56)
c = 1
Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "TREATED DATA"

For i = LBound(col) To UBound(col)
    Sheets("ALL DATA").Columns(col(i)).Copy Sheets("TREATED DATA").Cells(1, c)
    c = Sheets("TREATED DATA").Cells(1, Columns.Count).End(xlToLeft).Column + 1
Next i
End Sub

Cela marche à merveille! Merci beaucoup!

Pouvez m'expliquer cette ligne "For i = LBound(col) To UBound(col)"

Trop rapide pour moi I20100

J'étais encore en train de me poser la question des pourquoi des past special sans autre info ? lol

Cela marche à merveille! Merci beaucoup!

Pouvez m'expliquer cette ligne "For i = LBound(col) To UBound(col)"

c'est une boucle sur les valeurs de la variable tableau col

Array, une variable de type Variant contenant un tableau

LBound : plus petit indice disponible pour la dimension indiquée d'un tableau.

UBound : le plus grand indice disponible pour la dimension indiquée d'un tableau

ps/

slt Xmenpl, désolé

Trop rapide pour moi I20100

J'étais encore en train de me poser la question des pourquoi des past special sans autre info ? lol

My bad

Au début j'avais mis PasteSpecial ([Paste As XlPasteType = xlPasteValues]) comme pour le premier post où vous m'avez répondu mais je l'ai enlevé par la suite

Du coup PasteSpecial -> Paste

[quote=i20100 post_id=777652 time=1562327621 user_id=47027]

[ps/

slt Xmenpl, désolé

[/quote]

Pas de souci, de toute façon je galère sur les boucles ; à la lecture je les comprends mais de là à les écrire c'est autre chose

Cela marche à merveille! Merci beaucoup!

Merci pour ce retour, au plaisir!

si le problème est résolu, s.v.p. clôture le fil, par un clic sur le bouton

resolu
Rechercher des sujets similaires à "copier coller colonnes suite"