Copier coller d'un classeur vers au antre

zikkmu

XLDnaute Nouveau
Ça fait plusieurs jours que je me bats avec cette bête manipulation qui consiste à copier depuis un classeur et coller sur un autre.

Je précise que ma macro est enregistrée dans le classeur de macros personnelles.

Je télécharge sur le site de ma banque les écritures des derniers jours au format xls. J'ai donc un bête tableau dans ce fichier.

Voici ce je veux de ma macro :

1) qu'elle copie les données des écritures de la banque sauf la dernière ligne
2) qu'elle ouvre le fichier de mes comptes
3) qu'elle rajoute une ligne à la fin du tableau du fichier de mes comptes
4) qu'elle colle les données sur cette ligne (j'ai conscience que les données collées peuvent être plus grandes (en nb de lignes et colonnes) que la cellule sélectionnée mais ça ne pose pas de problème "à la main" donc...)


Le problème se pose sur la dernière ligne du code, au moment du "coller" j'ai l'erreur 1004 :" la méthode paste de la classe Worksheets a échoué."


Je pense que mon problème vient du fait qu'il y a trois classeurs dans l'affaire : celui qui contient les données de la banque, celui de destination, et celui où la macro est enregistrée..

Je précise que j'ai déjà essayé pas mal de méthodes pour le "coller" de la fin sans succès..

Voici mon code :

Code:
Sub Insérer_écritures()
'
' Insérer_écritures Macro
Dim DernLigne As Integer
Dim nblignes As Integer
Dim LR As ListRows
Dim ListObj As ListObject
DernLigne = 1 + Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
Range("A1:I" & CStr(DernLigne - 2)).Copy
Workbooks.Open Filename:="D:\Mes documents\Dropbox\Comptes\Comptes Ben.xlsx"
Workbooks("Comptes Ben.xlsx").Activate
Worksheets("Livre de comptes 2014").Activate
Set ListObj = Worksheets("Livre de comptes 2014").ListObjects("Tableau1")
ListObj.ListRows.Add
nblignes = Range("Tableau1").Rows.Count
Range("A" & CStr(1 + nblignes)).Select
ActiveSheet.Paste

End Sub

Merci d'avance si quelqu'un voit où se trouve le problème.
 

zikkmu

XLDnaute Nouveau
Re : Copier coller d'un classeur vers au antre

J'ai finalement trouvé.

Si ça peut servir à d'autres : apparemment, tout se passe comme si le contenu du presse-papier serait vidé lorsqu'on ouvre un autre classeur. J'ai donc retapé mon code de la manoière suivante et il marche:
Code:
Sub Insérer_écritures()
Dim DernLigne As Integer
Dim cl, sh As String
Dim nblignes As Integer
Dim LR As ListRows
Dim ListObj As ListObject
cl = ActiveWorkbook.Name
sh = ActiveSheet.Name
DernLigne = 1 + Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
Workbooks.Open Filename:="D:\Mes documents\Dropbox\Comptes\Comptes Ben.xlsx"
Workbooks("Comptes Ben.xlsx").Activate
Worksheets("Livre de comptes 2014").Activate
Set ListObj = Worksheets("Livre de comptes 2014").ListObjects("Tableau1")
ListObj.ListRows.Add
nblignes = Range("Tableau1").Rows.Count
Application.Workbooks(cl).Worksheets(sh).Range("A1:I" & CStr(DernLigne - 2)).Copy
Range("A" & CStr(1 + nblignes)).Select
ActiveSheet.Paste
Workbooks(cl).Close SaveChanges:=False
End Sub
 

Discussions similaires

Réponses
2
Affichages
792

Statistiques des forums

Discussions
314 487
Messages
2 110 119
Membres
110 676
dernier inscrit
Hoolaurent