Fusionner des fichiers Excel

Résolu
Kerdaven Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Mon sujet a été traité plusieurs fois :

Mon besoin :
Fusionner plusieurs fichiers Excel de même structure (colonnes A à L inclues uniquement jusque dernière ligne non vide)
Pour la macro est enregistrée dans mes macro personnelle pour être lancée depuis n'importe quel classeur.
Elle envoi les données toujours dans le même fichier appelé "cumul.xls"

Je me tape la tête sur une erreur 1004 (je suis sur Mac) sur la ligne "ActiveSheet.Paste"

Voici le code :
Sub cumul2()
'
' cumul2 Macro
'

'
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, "A:L").Select
Selection.Copy
Workbooks("cumul.xlsx").Activate
ActiveSheet.Paste
Range("A:A,C:L").Select
'Range("C1").Activate
Selection.ColumnWidth = 20
Range("A65536").End(xlUp).Offset(1, 0).Select

End Sub

Je pensais savoir faire deux trois trucs en VBA mais là je deviens dingue... vos lumières m'aideront.

Merci

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
il est recommandé d'éviter de faire select & activate en VBA.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
donc, par exemple, au lieu de
Workbooks("cumul.xlsx").Activate
ActiveSheet.Paste

écris
Workbooks("cumul.xlsx").Worksheets("...").Paste
0
kerdaven
 
merci pour votre retour rapide et proposition de solution.
Malheureusement cela donne la même erreur 1004
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
peux-tu partager ton fichier?
0
Kerdaven Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Voici deux fichiers exemple qui doivent alimenter le fichier "cumul"
https://www.cjoint.com/c/JJEiyzCo1vV
https://www.cjoint.com/c/JJEizOhGniV
https://www.cjoint.com/c/JJEiAl4Tr2V

Merci pour votre aide
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
quel est précisément le message d'erreur que tu obtiens?
0
Kerdaven Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
0
Kerdaven Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > Kerdaven Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
et quand je débogue c'est cette ligne qui pose soucis :
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
je ferais ainsi:
Sub cumul2()
Dim ws As Worksheet, source As Range, destination As Range
Set ws = ActiveSheet
Set source = Range(ws.Range("A2"), ws.Range("A2").End(xlDown)).Resize(, 12)
Set destination = Workbooks("cumul.xlsx").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0) _
    .Resize(source.Rows.Count, source.Columns.Count)
source.Copy destination
destination.ColumnWidth = 20
End Sub
0
Kerdaven Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
OK l'idée est de ne plus manipuler les classeur mais des variables contenant les plages à copier / coller ?

Je teste
0