Boucle extraction de données vers un fichier de synthèse

Bonjour,

Sur mon fichier, le

'source_ws.Range("B6:Q10").Copy.Range ("B" & dlr)

ne fonctionnait pas..

J'ai tenté :

source_ws.Range("B6:Q10").Select
            Selection.Copy
            .Range("B" & dlr).PasteSpecial

et....ça fonctionne

Merci pour toute ton aide !

Je mets le code ici, si ça peut aider des personnes.

Sub recuperation()

'Déclarer les variables

Dim target_wb As Workbook 'fichier récapitulatif
Dim target_ws As Worksheet 'feuille récapitulative
Dim source_path As String 'dossier source
Dim source_wb_name As String 'nom fichier source
Dim source_wb As Workbook  'fichier source
Dim source_ws As Worksheet 'feuille source

'Désactiver le rafraîchissement de l'écran avant la macro

Application.ScreenUpdating = False

'Ouvrir la feuille source du fichier source

Set target_wb = ThisWorkbook
source_path = "C:\Users\Julie\Documents\Gécina\Outil évaluation Gecina\" 'Modification nécessaire en cas de changement d'ordinateur
Set target_ws = target_wb.Worksheets("Récupération des données")
dlr = target_ws.Cells(Rows.Count, "B").End(xlUp).Row + 1 'dernière ligne utilisée sur la feuille récapitulative
If dlr = 5 Then dlr = 6
source_wb_name = Dir(source_path & "\*.xlsx")

Do While source_wb_name <> ""
        'le fichier est ouvert via l'instruction workbook.open, une fois le fichier ouvert
        'il devient actif et le lien entre source et le fichier se fait par l'instruction set source=activeworkbook
        Workbooks.Open source_path & source_wb_name
        Set source_wb = ActiveWorkbook
        On Error GoTo suivant
        Set source_ws = source_wb.Worksheets("VBA")
        With target_ws
            On Error GoTo 0
            source_ws.Range("B6:Q10").Select
            Selection.Copy
            .Range("B" & dlr).PasteSpecial

            dlr = dlr + 5 'on a copié 5 lignes sur target_ws
        End With
        source_wb.Close False

suite:
        On Error GoTo 0
        source_wb_name = Dir()
Loop

Exit Sub

suivant:
If Err.Number = 9 Then MsgBox "Pas de feuille ""VBA"" dans le fichier " & source_wb_name, vbExclamation: source_wb.Close False: Resume suite
MsgBox "une erreur" & Err.Number & "est survenue"

End Sub

Bonjour,

j'ai écrit

source_ws.Range("B6:Q10").Copy .Range("B" & dlr)

et non

source_ws.Range("B6:Q10").Copy.Range ("B" & dlr)

c'est difficile de voir la différence...

Rechercher des sujets similaires à "boucle extraction donnees fichier synthese"