2017-04-18 1 views
0

Je souhaite utiliser Excel vba pour copier des données d'une colonne particulière d'un classeur à un autre. Par exemple, je voudrais copier la colonne A, B, E, G, H, M, N dans le classeur 1 au classeur 2, à partir de A2.Copier des données dans des colonnes d'un classeur à un autre

Actuellement, j'utilise cet exemple mais cela ne sert pas le but que je veux que la macro agisse. J'avais inclus les codes que j'utilise actuellement ci-dessous:

Sub SO() 

Dim lastRow As Long 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 

Set ws1 = Workbooks("workbook1.xlsm").WorkSheets("Sheet1") 
Set ws2 = Workbooks("workbook2.xlsm").WorkSheets("Sheet1") 

lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row 

ws1.Range(Cells(2, 1), Cells(lastRow, 1)).Copy 

ws2.Range("C2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
:=False, Transpose:=False 

End Sub 

Veuillez nous aider. Merci d'avance.

Répondre

0

Juste pour vous donner une explication et un exemple:

Vous utilisez

ws1.Range(Cells(2, 1), Cells(lastRow, 1)).Copy 
        ^    ^
        |     | 
        Column 1   Column 1 

Ainsi cette copie la gamme de la colonne 1 à la colonne 1 entre la ligne 2 et la dernière ligne.

Si vous changez à

ws1.Range(Cells(2, "A"), Cells(lastRow, "C")).Copy 

Il copiera la gamme des colonnes A à D (A, B, C et D) entre la ligne 2 et la dernière ligne. Si vous n'avez pas besoin de la colonne B dans l'exemple ci-dessus, vous devrez copier et coller la colonne A et les colonnes C + D indépendamment dans 2 actions de copier/coller.