Bonjour à tous,
J’aimerais créer une macro qui me permettrait d’aller copier une sélection de cellules dans un fichier et de le coller dans un autre, puis d’aller copier une sélection de cellules dans un autre fichier et de le coller dans le fichier mais à la suite de ce qui a été collé auparavant.
A savoir que les fichiers dans lesquels je veux copier la sélection de cellules sont tous identiques ou du moins ont la même forme donc la plage de cellules sera toujours la même.
J’ai réussi à réaliser la macro et elle fonctionne jusqu’à l’étape de coller à la suite de ce qui a été collé auparavant.
Auriez-vous une solution pour m’aider ?
Je vous mets ci-dessous ma macro en l’état :
Sub consolidations()
Dim wbRecap As Workbook
Dim wsRecap As Worksheet
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim DernLign As Integer
Dim vFichiers As Variant
Dim i As Integer, k As Integer
Dim rgRecap As Range
Dim Destination As Variant
Dim der_col As Variant
Dim col_coller As Variant
Set wbRecap = ThisWorkbook
Set wsRecap = wbRecap.Sheets(« 2.14 »)
’ — Ouvrir boite de dialogue pour sélectionner les fichiers à ouvrir
vFichiers = Selectionner_Fichiers(« Selectionner les fichiers à compiler »)
'Chercher un fichier
If Not IsArray(vFichiers) Then
Debug.Print « Aucun fichier sélectionné. »
MsgBox « Erreur! Aucun/Mauvais fichier sélectionné. »
Exit Sub
End If
On Error Resume Next
Application.ScreenUpdating = False
For k = 1 To UBound(vFichiers)
Application.StatusBar = « >> Lecture du fichier # » & k & « / » & UBound(vFichiers)
Set wbSource = Workbooks.Open(vFichiers(k))
Set wsSource = wbSource.Sheets(« 2.14 »)
der_col = wsSource.Cells(Rows.Count, 1).End(xlUp).Row
rgRecap = Time
'With wsSource(« Sheet1 »)
With wsSource
For i = 1 To 100
Destination = wsRecap.Cells(i, 10)
col_coller = wsSource.Cells(Rows.Count, 1).End(xlUp).Row + 10
If Destination = « » Then
wsSource.Range(wsSource.Cells(i, 1), wsSource.Cells(i, 10)).Copy wsRecap.Cells(i, 1)
ElseIf Not Destination = « » Then
wsSource.Range(wsSource.Cells(i, 1), wsSource.Cells(i, 10)).Copy wsRecap.Cells(i, col_coller)
End If
Next
End With
wbSource.Close
Set wbSource = Nothing
Next k
Application.ScreenUpdating = True
Application.StatusBar = False
End Sub
Je vous remercie !