Copier une partie d'une colonne dans un autre excel- VBA
Bonjour, j'essaye de copier des colonnes (mais partiellement, cad des plages de ces colonnes), ceci d'une manière automatique pour plusieurs fichiers.
Je suis dans la première étape de copier coller pour un seul fichier excel vers un autre.
Je réussie à copier une cellule à la fois mais pas plusieurs cellules à la fois pour un seul fichier.
j'ai ce code pour copier une cellule qui fonctionne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Sub foo5()
Dim y As Workbook
Dim sourcePath As String, sourceFile As String, destFullPath As String
sourcePath = "Z:\VBA\"
sourceFile = "PARA__Casa_Idron_64__19102016.xlsx" '<--| specify your source file name only, with its extension
destFullPath = "Z:\VBA\copyColumns.xlsx" '<--| specify your destination file FULL path
If Dir(destFullPath) = "" Then '<--| check is such a file actually exists
MsgBox "File " & vbCrLf & vbCrLf & destFullPath & vbCrLf & vbCrLf & "is not there!" & vbCrLf & vbCrLf & vbCrLf & "The macro stops!", vbCritical
Else
Set y = Workbooks.Open(destFullPath)
With y.Sheets("Feuil1").Range("B1")
.Formula = "='" & sourcePath & "[" & sourceFile & "]Para RF'!C33"
.Value = .Value
End With
'y.Close SaveChanges:=True
End If
End Sub |
alors que lorsque je généralise pour plusieurs cellules, mais toujours dans la même colonne, comme dans ce code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Sub foo4()
Dim y As Workbook
Dim sourcePath As String, sourceFile As String, destFullPath As String, i As Integer '<--| not necessary, but useful not to clutter statements
sourcePath = "Z:\VBA\" '<--| specify your source file path down to the last backslash and with no source file name
sourceFile = "PARA__Casino_Idron_64__19102016.xlsx" '<--| specify your source file name only, with its extension
destFullPath = "Z:\VBA\copyColumns.xlsx" '<--| specify your destination file FULL path
If Dir(destFullPath) = "" Then '<--| check is such a file actually exists
MsgBox "File " & vbCrLf & vbCrLf & destFullPath & vbCrLf & vbCrLf & "is not there!" & vbCrLf & vbCrLf & vbCrLf & "The macro stops!", vbCritical
Else
Set y = Workbooks.Open(destFullPath)
For i = 23 to 33
With y.Sheets("Feuil1").Range("B" & i - 10)
.Formula = "='" & sourcePath & "[" & sourceFile & "]Para RF'!C&i"
.Value = .Value
End With
'y.Close SaveChanges:=True
End If
End Sub |
Sachant que ce que je copie contients des formules, moi je veux copier le résultats final et pas la formule.
Merci d'avance pour vos aides et vos propositions!!
Cheers!