Problème Code VBA fusion de fichiers en 1

Bonjour le forum,

Je suis novice dans la programmation VBA et j'ai récupéré ce code (ci dessous) que j'ai tenté d'adapter à mon sujet.

La structure de mes fichiers à recopier (Exemple_) et de ma base (Attendu_v0.xlsm) est identique

Le problème que je rencontre est le suivant :

seule la ligne n°9 du 1er fichier est recopiée

les ligne du 2ième fichier (9 à 500) sont recopiées

ensuite, c'est fini : les autres fichiers ne sont pas ouverts et les données non recopiées

Merci pour vos lumières

Chb44

Quote

Sub COMPIL()

Application.ScreenUpdating = False

chemin = ThisWorkbook.Path & "/"

For i = 1 To 2

Workbooks.Open (chemin & "Exemple_" & i & ".xls")

Windows("Exemple_" & i & ".xls").Activate

Rows("9:500").Select

Selection.Copy

Windows("Attendu_v0.xlsm").Activate

Sheets("Feuil1").Range("a8").Offset(i, 0).Select

Selection.PasteSpecial Paste:=xlPasteValues, _

Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Workbooks("Exemple_" & i & ".xls").Close False

Next i

End Sub

Unquote

Bonjour Chb, bonjour le forum,

Peut-être comme ça :

Sub COMPIL()
Dim CD As Workbook
Dim OD As Worksheet
Dim CS As Workbook
Dim OS As Worksheet
Dim DEST As Range

Application.ScreenUpdating = False
Set CD = ThisWorkbook
Set OS = CD.Worksheets("Feuil1")
chemin = CD.Path & "/"
For i = 1 To 2
    Workbooks.Open (chemin & "Exemple_" & i & ".xls")
    Set CS = ActiveWorkbook
    Set OS = CS.Worksheets(1) 'à adapter
    OS.Rows("9:500").Copy
    Set DEST = IIf(OD.Range("A9").Value = "", OD.Range("A9"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
    DEST.PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    CS.Close False
Next i
Application.ScreenUpdating = True
End Sub

Merci pour le code je vais le tester et je te redis

Bonjour ThauThème

J'ai un bug quand je lance la macro, voici le message :

"erreur d'execution 91 variable objet ou variable de bloc non définie"

le débogueur indique la ligne 17

Merci par avance de tes lumières

Re,

La ligne 17 ? Précise (copier/coller de la ligne en question) pour éviter tout doute...

Désolé, en y regardant de plus près je viens de m'apercevoir d'une erreur dans le code. Essaie comme ça :

Sub COMPIL()
Dim CD As Workbook
Dim OD As Worksheet
Dim CS As Workbook
Dim OS As Worksheet
Dim DEST As Range

Application.ScreenUpdating = False
Set CD = ThisWorkbook
Set OD = CD.Worksheets("Feuil1")
chemin = CD.Path & "/"
For i = 1 To 2
    Workbooks.Open (chemin & "Exemple_" & i & ".xls")
    Set CS = ActiveWorkbook
    Set OS = CS.Worksheets(1) 'à adapter
   OS.Rows("9:500").Copy
    Set DEST = IIf(OD.Range("A9").Value = "", OD.Range("A9"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
    DEST.PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    CS.Close False
Next i
Application.ScreenUpdating = True
End Sub

Excellent ! cela fonctionne parfaitement !!


merci bcp !!

Rechercher des sujets similaires à "probleme code vba fusion fichiers"