Copier coller d'un classeur vers au antre

  • Initiateur de la discussion Initiateur de la discussion zikkmu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
703
Retour