1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| Sub ConcatBoucleExt()
'
' CopieAutreSheet Macro
'
'
'Colonne a copier
Dim colonneSrc As String, colonneCible As String
'Dim param(1, 2) As String
Dim param(0, 2) As String
Dim i As Integer
param(0, 0) = "B" 'colonne source
param(0, 1) = "B" 'colonne cible
param(0, 2) = "source.xlsx" 'fichier source
'param(1, 0) = "C" 'colonne source
'param(1, 1) = "D" 'colonne cible
'param(1, 2) = "source.xlsx" 'fichier source
'param(1, 0) = "C" 'colonne source
'param(1, 1) = "A" 'colonne cible
'param(1, 2) = "source.xlsx" 'fichier source
Dim fichierCible As String
fichierCible = "cible.xlsx"
' Varaible objet d'un classeur
Dim WB_Principal As Workbook
' Instanciation de la variable pour connaître le classeur actif
Set WB_Principal = ActiveWorkbook
' on boucle jusqua la limite superieur de la dimension 1
For i = 0 To UBound(param, 1)
colonneSrc = param(i, 0)
colonneCible = param(i, 1)
fchierSrc = param(i, 2)
Workbooks(fchierSrc).Activate
Sheets("Sheet1").Select
' calcul du nombre de ligne à copier en se basant la premiere colonne
Dim nbLigne As Integer
nbLigne = Range("A" & Rows.Count).End(xlUp).Row
' on selectionne la colonne a copier
Range(colonneSrc & "1", colonneSrc & nbLigne).Select
Selection.Copy
' on reactive le classeur par defaut
' AVEC le classeur courant cela marche
' WB_Principal.Activate
' mais avec le classeur DISTANT, non
Workbooks(fchierCible).Activate
'on la colle dans le classeur
Workbooks(fchierCible).Sheets("Sheet1").Select
' mais pas sur la premiere ligne, on va a la derniere
Range(colonneCible & "1").End(xlDown).Select
' et on se positionne a la ligne suivante pour coller
'ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Next
End Sub |
Partager