Copier la feuille d'un fichier excel dans un autre fichier excel

Résolu
ENJOY2020 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
ENJOY2020 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je sais que ce sujet a déjà été traité des dizaines de fois mais comme d'habitude chez moi cela ne fonctionne pas.

Comme l'indique le titre de la question, j'aimerais copier la feuille d'un fichier Excel dans un autre fichier Excel. En l’occurrence ici ce sont des données des années 2010 à 2019 (donc 10 fichiers Excel) que je veux regrouper dans un seul et unique fichier qui se nommerait 2010-2019

Voici mon code source :

Sub initialisation()

'Création du fichier Excel et test s'il existe'
    Dim MonFichier As String
    MonFichier = "2010-2019.xlsx"
  
    If FichierExiste(MonFichier) = False Then
        Workbooks.Add.SaveAs Filename:=("2010-2019.xlsx")
    End If

    Workbooks.Open Filename:=("2010")
    Workbooks.Open Filename:=("2010-2019.xlsx")
    
    Workbooks("2010-2019.xlsx").Activate
    Workbooks("2010").Sheets("2010").Copy Destination:=Workbooks("2010-2019.xlsx").Sheets("2010")

End Sub



Et forcément à l'exécution de la dernière ligne j'ai le message : erreur d'exécution '9'.

Si quelqu'un peut me dire ce que je fais qui ne va pas cela m'aiderait grandement.

Merci d'avance.

Configuration: Windows / Opera 68.0.3618.125
A voir également:

3 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
0
ENJOY2020 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

J'ai pu tester les codes que vous me proposez ce soir. Finalement la solution était d'enlever le .Activate... Le code suivant fonctionne :

Sub initialisation()

'Création du fichier Excel et test s'il existe'
Dim MonFichier As String

MonFichier = "2010-2019.xlsx"

If FichierExiste(MonFichier) = False Then
Workbooks.Add.SaveAs Filename:=("2010-2019")
End If


Workbooks.Open "2010"
Workbooks.Open "2010-2019"

Workbooks("2010").Sheets("2010").Copy After:=Workbooks("2010-2019").Sheets(1)

Workbooks("2010-2019").Close SaveChanges:=True
Workbooks("2010").Close SaveChanges:=True


End Sub


Bonne soirée et merci pour votre réactivité.
0