Copie de données d'un fichier à l'autre/ creation de feuille

Bonjour

Je vous explique mon probleme.

J'essaye de copier les données de A1:B10 d'une feuille 01 du fichier excel Alpha à une feuille 01 du fichier excel Beta.

Là où cela se corse, c'est que la macro doit être capable de créer la feuille 01 du fichier Beta, si celle ci n'existe pas et de copier les données A1:B10 de la feuille 01 du fichier Alpha dessus.

Je ne sais pas si ça a son importance mais le fichier BETA gardera tjrs le même nom mais le fichier alpha risque d'avoir au bout d'un moment un nom différent.

Voilà le bout de code que j'ai déjà fait mais qui ne fonctionne même pas pour la copie.

sub merguez ()
Dim classeurdestin As Workbook
Dim feuille As Worksheet
Dim feuille2 As Worksheet
Set feuille = ActiveWorkbook.ActiveSheet
ActiveSheet.Range("a1:b10").Select
Selection.Copy
Set classeurdestin = Application.Workbooks.Open("c:\Beta.xls")
For Each feuille2 In ActiveWorkbook
    If feuille2.Name = feuille.Name Then
    Sheets(feuille2).activate
    Range("a1").select
    selection.paste
    Else
    Sheets.Add.Move After:=Sheets(Worksheets.Count)
    Sheets(Worksheets.Count).Name = feuille.Name
    Sheets(Worksheets.Count).Range("a1").select
    selection.paste
   End If
    Next
ActiveWorkbook.Save
ActiveWorkbook.Close
end sub

Merci

Bonjour

A essayer

les deux fichiers dans le même répertoire

45sebou.zip (16.02 Ko)

Merci pour ta réponse

Cela marche très bien tant que la feuille 01 existe dans le fichier BETA

mais la macro bloque (erreur d'execution 1004) dès qu'on l'utilise sur une feuille qui n'existe pas en BETA.

La macro bloque juste après avoir ouvert le fichier BETA .

J'ai un peu modifié la macro en enlevant la ref à lg. Si il existe deja des données en A1:B10, elles doivent être ecrasées.

  Application.ScreenUpdating = False
  Set feuille = ActiveWorkbook.ActiveSheet
  Set classeurdestin = Application.Workbooks.Open("C:\BETA.xls")
  If FeuilleExiste(classeurdestin.Name, feuille.Name) = False Then
  Sheets.Add After:=Sheets(Sheets.Count)
  ActiveSheet.Name = feuille.Name
 End If
 With classeurdestin.Sheets(feuille.Name)
 feuille.Range("a1:b10").Copy Destination:=classeurdestin.Sheets(feuille.Name).Range("A1")
 End With

 ActiveWorkbook.Save
 ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

J'ai bien ajouté à mon fichier la fonction feuillexiste et je ne l'ai pas modifié.

Merci

Bonjour

Sebou a écrit :

Cela marche très bien tant que la feuille 01 existe dans le fichier BETA

mais la macro bloque (erreur d'execution 1004) dès qu'on l'utilise sur une feuille qui n'existe pas en BETA.

Bizarre, normalement on teste si la feuille existe dans le fichier Beta (Function FeuilleExiste) et si elle n'existe pas elle est crée

Alors que la macro bloque c'est incompréhensible

Le fichier Beta est le fichier de réception des données du fichier Alpha

Alors il y a quelque chose que je n'arrive pas à cerner

L'intégration a mon fichier de base doit mal se faire, mais j'avoue ne pas comprendre où est le probleme

J'ai trouvé. Faut mettre tout ça dans un module alors que je le mettais là où se trouve toutes mes macros (thisworkbook). J'ai tout déménagé dans module1 et ca marche

Encore merci

Rechercher des sujets similaires à "copie donnees fichier creation feuille"