XL 2016 [Résolu] - [VBA] - Copier-coller entre deux classeurs

Fredox

XLDnaute Occasionnel
Bonjour,

Je souhaites faire un copier-coller entre deux classeurs (l'actuel qui sert de source, le nouveau qui sert de destination). J'ai essayé de faire "simple", j'ai une erreur.

Le Code:
VB:
Sub Export()

Dim Wb_Source As Workbook, Wb_Destination As Workbook
Set Wb_Source = ThisWorkbook
Dim Ws_Source As Worksheet, Ws_Destination As Worksheet
Set Ws_Source = Wb_Source.Worksheets(1)

Dim Nom As String
Dim Export As String
Nom = "Export_(1).xls"

Set Wb_Destination = Workbooks.Add
Set Ws_Destination = Wb_Destination.Worksheets(1)

Wb_Source.Ws_Source.Range("A1").Copy
Wb_Destination.Ws_Destination.Range("A1").Paste

End sub

J'ai une erreur sur cette ligne:
Code:
Wb_Source.Ws_Source.Range("A1").Copy

Vous auriez une idée ?
Merci
 

Staple1600

XLDnaute Barbatruc
Re

En attendant que tes recherches dans les archives soient fructueuses
Trois exemples qui fonctionnent sur mon PC
(Deux classeurs non enregistrés ouverts Classeur1 et Classeur2)
Les codes VBA sont dans le projet VBA de Classeur1
VB:
Sub Macro1() 'test OK
Sheets("Feuil1").Copy After:=Workbooks("Classeur2").Sheets(1)
End Sub
Sub Macro2() 'test OK
Sheets("Feuil1").Cells(1).CurrentRegion.Copy Workbooks("Classeur2").Sheets(1).Cells(1)
End Sub
Sub Macro3() 'test OK
Dim vArr
vArr = Sheets("Feuil1").Cells(1).CurrentRegion.Value
Workbooks("Classeur2").Sheets(1).Cells(1).Resize(UBound(vArr, 1), UBound(vArr, 2)) = vArr
End Sub
NB: Je te laisse tester et faire les adaptations idoines.
 

Fredox

XLDnaute Occasionnel
Re

En attendant que tes recherches dans les archives soient fructueuses
Trois exemples qui fonctionnent sur mon PC
(Deux classeurs non enregistrés ouverts Classeur1 et Classeur2)
Les codes VBA sont dans le projet VBA de Classeur1
VB:
Sub Macro1() 'test OK
Sheets("Feuil1").Copy After:=Workbooks("Classeur2").Sheets(1)
End Sub
Sub Macro2() 'test OK
Sheets("Feuil1").Cells(1).CurrentRegion.Copy Workbooks("Classeur2").Sheets(1).Cells(1)
End Sub
Sub Macro3() 'test OK
Dim vArr
vArr = Sheets("Feuil1").Cells(1).CurrentRegion.Value
Workbooks("Classeur2").Sheets(1).Cells(1).Resize(UBound(vArr, 1), UBound(vArr, 2)) = vArr
End Sub
NB: Je te laisse tester et faire les adaptations idoines.

Bonjour Staple1600,
J'ai bien cherché dans le forum mis ps trouvé ce que je cherchais (ThisWorkbook).
Par facilité je vais poursuivre sur ce que j'ai fait, la solution de Dranreb m'apporte ce que je souhaite.

Merci
 

Discussions similaires

Réponses
7
Affichages
598
Réponses
9
Affichages
343
Réponses
12
Affichages
847

Statistiques des forums

Discussions
315 149
Messages
2 116 780
Membres
112 859
dernier inscrit
patricekangourou