Copie TCD sur une fichier Excel
Bonjour
je cherche a copier un TCD contenu sur un onglet d'un fichier X sur un fichier Y.
En recherchant sur le forum j'ai pu développer ceci mais ma macro bloque au niveau de la copie des nouvelles données au niveau de l'opération de suppression des données et également pour el collage des nouvelles données:
Sub SAP()
Dim classeurSource As Workbook, classeurDestination As Workbook
'définir le classeur destination
Set classeurDestination = ThisWorkbook
'\\\\\\\\\\\\\\\\\\\\\tester si fichier deja ouvert\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
On Error Resume Next
Workbooks("Extraction SAP_MEF.xlsx").Activate
' Si une erreur est renvoyée, fichier non ouvert
If Err.Number <> 0 Then
'j'ouvre le fichier source en lecture seule au cas ou
Application.Workbooks.Open "P:\14_flux\16- Planif centrale\8 - Planif lots\Nouveau outil planif 2018\Extraction SAP_MEF.xlsx", , True
End If
On Error GoTo 0
'Définir classeur source
Set classeurSource = Workbooks("Extraction SAP_MEF.xlsx")
'effacer les anciennes données
classeurDestination.Sheets("Données").Activate
' Supprime toutes les cellules et les décales vers le haut
Cells.Delete Shift:=xlUp
'copier les données de la "Extraction SAP_MEF" du classeur source vers la "Données" du classeur destination
Workbooks("Extraction SAP_MEF.xlsx").Sheets("MEF Article Jour").Activate
Cells.Select
Range("A1").Activate
Selection.Copy
classeurDestination.Sheets("Données").Activate
Range("A1").Select
ActiveSheet.Paste
'fermer le classeur source
' classeurSource.Close False
End SubEst ce que vous voyez quelque chose de déconnant dans mon code, ou est ce qu'il est possibel de faire plus simple? surement
Merci
Bonjour
Dans la fin du code, essayez en remplaçant
'effacer les anciennes données
classeurDestination.Sheets("Données").Activate
' Supprime toutes les cellules et les décales vers le haut
Cells.Delete Shift:=xlUp
'copier les données de la "Extraction SAP_MEF" du classeur source vers la "Données" du classeur destination
Workbooks("Extraction SAP_MEF.xlsx").Sheets("MEF Article Jour").Activate
Cells.Select
Range("A1").Activate
Selection.Copy
classeurDestination.Sheets("Données").Activate
Range("A1").Select
ActiveSheet.Pastepar ceci
' Supprime toutes les cellules
classeurDestination.Sheets("Données").Cells.Delete ' Shift:=xlUp
'copier les données de la "Extraction SAP_MEF" du classeur source vers la "Données" du classeur destination
classeurSource.Sheets("MEF Article Jour").Cells.Copy classeurDestination.Sheets("Données").Range("A1")Si ok et terminé, merci de cloturer le fil en cliquant sur le petit v en haut à droite lors de votre réponse
Cordialement
bonjour
salut Dan
s'il s'agit de traiter des données venant de SAP ou autre système de gestion, en principe on ne fait pas plusieurs fois le travail (même avec VBA)
on fait une connexion aux données (menu Données d'Excel, accepte de multiples formats, y compris SAP HANA), on crée le TCD
et ensuite il suffit d'actualiser le TCD.
on ne "copie" jamais de données, ni au clavier ni avec VBA.