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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!