Rapatriement de données d'un classeur Excel à un autre

Bonjour

j'avais un problème pour copier des données d'un classeur ouvert à un autre fermé hier. Ce fut arrangé vite fait grâce à vous. Maintenant j'ai le problème inverse. Impossible de copier les données d'un fichier excel fermé à un ouvert.

Ce que je souhaiterais c'est que :

En partant d'un fichier A, feuille Alpha, la macro ouvre un fichier B et regarde si la feuille Alpha y existe aussi.

Si elle n'existe pas, la macro avertit l'utilisateur et ferme le fichier B sans rien changer.

Si elle existe, la macro va sur la feuille Alpha du fichier B, copie les données de A1 à AR200 sur BA1 dans la feuille Alpha du fichier A.

Je n'arrete pas d'avoir une erreur d'execution 13 (incompatibilité de type). J'ai retourné le problème mais je ne vois pas la syntaxe à adopter pour que cela fonctionne.

Voici mon code

Option Explicit

 Function FeuilleExiste(NomFichier As String, Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Workbooks(NomFichier).Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function

Sub Import()
Dim feuille As Worksheet
Dim classeursource As Workbook
Dim classeurdestin As Workbook
    Application.ScreenUpdating = False
    'ActiveSheet.Unprotect
    Set feuille = ActiveWorkbook.ActiveSheet
    Set classeurdestin = ActiveWorkbook
    Set classeursource = Application.Workbooks.Open("c:\B.xls")
  If FeuilleExiste(classeursource.Name, feuille.Name) = False Then
  MsgBox ("Les plannings pour la semaine du " & feuille.Name & " ne sont pas disponibles")
  classeursource.Close
  'ActiveSheet.Protect
  Exit Sub
  Else
  classeursource.Sheets(feuille.Name).Range("A1:AR200").Copy Destination:=classeursource.Sheets(feuille).Range("BA1")
classeursource.Close
Application.ScreenUpdating = True
'ActiveSheet.Protect
End If
End Sub

Merci

PS : j'ai aussi de temps en temps des erreurs d'automation. Elles sont aleatoires et je n'arrive pas à en comprendre la raison. En tout cas merci Excel de m'avoir appris ce mot 'Automation' que je deteste déjà

Bonjour

Pas sur car sans fichier pour tester

Sebou a écrit :

la macro va sur la feuille Alpha du fichier B, copie les données de A1 à AR200 sur BA1 dans la feuille Alpha du fichier A.

Option Explicit

     Function FeuilleExiste(NomFichier As String, Nom As String) As Boolean
      On Error Resume Next
      FeuilleExiste = Workbooks(NomFichier).Sheets(Nom).Name <> ""
      On Error GoTo 0
    End Function

    Sub Import()
    Dim feuille As Worksheet
    Dim classeursource As Workbook
    Dim classeurdestin As Workbook
        Application.ScreenUpdating = False
        'ActiveSheet.Unprotect
       Set feuille = ActiveWorkbook.ActiveSheet
        Set classeurdestin = ActiveWorkbook
        Set classeursource = Application.Workbooks.Open("c:\B.xls")
      If FeuilleExiste(classeursource.Name, feuille.Name) = False Then
      MsgBox ("Les plannings pour la semaine du " & feuille.Name & " ne sont pas disponibles")
      classeursource.Close
      'ActiveSheet.Protect
     Exit Sub
   End If
      classeursource.Sheets(feuille.Name).Range("A1:AR200").Copy Destination:=feuille.Range("BA1")
    classeursource.Close
    Application.ScreenUpdating = True
    'ActiveSheet.Protect
  ' End If
    End Sub

Snif... c'est tellement bête des fois.

Merci beaucoup

Ton efficacité et ta rapidité me laisse sans voix à chaque fois ^^

Rechercher des sujets similaires à "rapatriement donnees classeur"