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 SubMerci
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 SubSnif... c'est tellement bête des fois.
Merci beaucoup
Ton efficacité et ta rapidité me laisse sans voix à chaque fois ^^