Copier le contenu d'une feuille dans un classeur fermé

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

pour copier le contenu de la feuille d'un des classeurs actifs dans un classeur fermé j'ai utilisé ce code trouvé sur le net et celà marchait très bien jusqu'au moment j'ai lié le classeur en tant que Data base dans power pivot . Lors de la compilation une erreur se produit et je ne comprends pas ce que l'aide me dit , l'erreur dit " Run-time error '1004': PasteSpecial method of range class failed"

Merci d'avance pour votre aide
mon code ci dessous

Workbooks.Open Filename:="C:\Daily_report\COD_Metrics\WorkDataFinal.xlsx"
Windows("WorkDataFinal.xlsx").Activate

Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Windows("WorkDataFinal.xlsx").Close savechanges:=True
Application.DisplayAlerts = False
WDte.Close savechanges:=True
Kill ("C:\Daily_report\COD_Metrics\Bookdata.xlsx")


A voir également:

1 réponse

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

1) ce code est incomplet
2) il n'écrit pas dans un classeur fermé
3) utiliser Activate et Select est une mauvaise méthode
4) le second pastespecial est inutile
5) au lieu de travailler sur toutes les cellules il est préférable de se limite à la plage utilisée (usedrange)
6) plutôt que pastespecial values, utiliser range.value = range.value
1
muiigisha Messages postés 61 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Patrice,
Merci j'ai essayé de modifier d'après vos conseils et ça marche sans problème. Je mets au cas où le code après modif et si il y a encore des améliorations dites le moi svp et je le ferai. Si la modif peut aider d'autres, voci le code



WDte.Activate
ActiveSheet.UsedRange.Select
Selection.Copy

Workbooks.Open Filename:="C:\Daily_report\COD_Metrics\WorkDataFinal.xlsx"
Windows("WorkDataFinal.xlsx").Activate


ActiveSheet.UsedRange.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("WorkDataFinal.xlsx").Close savechanges:=True
Application.DisplayAlerts = False
WDte.Close savechanges:=True
Kill ("C:\Daily_report\COD_Metrics\Bookdata.xlsx")



Merci beaucoup
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780 > muiigisha Messages postés 61 Date d'inscription   Statut Membre Dernière intervention  
 
Il faut éviter d'utiliser Activate et Select :
' Il est inutile d'activer le classaur WDte
'    WDte.Activate
    
' Déclarations (à placer de préférence en tête de procédure)
Dim wbk As Workbook
Dim org As Range
Dim dst As Range
    
  ' Ouvrir le fichier destination
  Set wbk = Workbooks.Open(Filename:= "C:\Daily_report\COD_Metrics\WorkDataFinal.xlsx")
  ' Définir la plage de destination utilisée
  Set dst = wbk.Worksheets(1).UsedRange
  ' Effacer les données pré-existantes
  dst.ClearContents
  ' Définir la plage origine des données
  Set org = WDte.ActiveSheet.UsedRange
  ' Redéfinir la taille de plage de destination (même que org)
  Set dst = dst.Resize(org.Rows.Count, org.Columns.Count)
  ' Copier les données
  dst.Value = org.Value
  ' Fermer le fichier destination (avec sauvegarde)
  wbk.Close savechanges:=True
    
' Suite du code (sans rapport avec la copie) .........
    WDte.Close savechanges:=True
    Kill ("C:\Daily_report\COD_Metrics\Bookdata.xlsx")
0
muiigisha Messages postés 61 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Patrice,
d'accord c'est compris. Merci beaucoup.
Par contre lors de l'enregistrement ça ouvre une boite de dialogue et crée plutôt une copie du fichier appelé au lieu de faire juste une sauvegarde.

Pouvez-vous m'aider?

Merci d'avance
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Le fichier n'est-il pas en lecture seule ?
0
muiigisha Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Patrice,
j'ai regardé mais c'est le dossier (dans lequel est le fichier) qui s'entête à être en lecture seule.
0