Copier coller / classeurs différents

Bonjour tout le monde,

Voilà je dois copier coller des valeurs qui sont dans une feuille d'un classeur vers un autre classeur pour automatiser une tâche.

J'ai déjà réalisé un code qui fonctionne mais il nécessite qu'un des deux classeur soit fermé (donc quand la macro est lancée, elle ouvre le classeur dans lequel il y a les données à copier).

Ce que je souhaiterai faire c'est d'effectuer la manip d'écrite précédemment quand les deux fichiers Excel sont ouverts séparément.

(j'ouvre mes deux fichiers et je lance la macro qui se trouve dans le classeur 2 pour coller les valeurs qui ont été copiées dans le classeur 1 --> voir code ci-dessous)

Voici le code :

Sub Copier_Coller()

Dim classeur1 As Workbook
Dim classeur2 As Workbook

Set classeur2 = ThisWorkbook
Set classeur1 = Workbooks.Open(Filename:="Emplacement_Classeur1")

Set c1 = classeur1.Worksheets("Feuil1").Range("A1:C2")
c1.Copy

Set c2 = classeur2.Worksheets("Input").Range("G1:I2")
c2.PasteSpecial (xlPasteValues) 'Nécessaire car je veux juste copier les données et non les formules

Application.CutCopyMode = False

End Sub

J'en conviens le code n'est pas très beau mais bon il marche ^^ il doit y avoir moyen de faire plus simple.

Je vous remercie par avance du temps que vous souhaiterai y consacrer.

Merci

sgc_61

bonjour,

une proposition qui devrait fonctionner que le 2ème classeur soit déjà ouvert ou non

Sub Copier_Coller()
    Dim classeur1 As Workbook
    Dim classeur2 As Workbook
    Set classeur2 = ThisWorkbook
    On Error Resume Next
    chemin = "chemin"
    nomclasseur = "classeur.xlsx"
    Set classeur2 = Workbooks(nomclasseur)
    Erreur = Err
    On Error GoTo 0
    If Erreur Then Set classeur1 = Workbooks.Open(chemin & nomclasseur)
    classeur1.Worksheets("Feuil1").Range("A1:C2").Copy
    classeur2.Worksheets("Input").Range("G1:I2").PasteSpecial xlPasteValues    'Nécessaire car je veux juste copier les données et non les formules
    Application.CutCopyMode = False
End Sub

Bonjour,

Ou encore :

Option Explicit
Sub Copier_Coller()
Dim c1 As Workbook
Dim chemin$, nomclasseur$

    chemin = ThisWorkbook.Path & "\"   'ou autre"
    nomclasseur = "classeur.xlsx"
    On Error Resume Next
    Set c1 = Workbooks(nomclasseur)
    On Error GoTo 0
    If c1 Is Nothing Then Set c1 = Workbooks.Open(chemin & nomclasseur)
    ThisWorkbook.Worksheets("Input").Range("G1:I2").Value = c1.Worksheets("Feuil1").Range("A1:C2").Value

End Sub

Merci beaucoup h2so4 et patrice

Je vais essayer ça se soir si besoin je reviendrai vers vous sinon je mettrai Résolu !

Encore merci et bonne soirée ^^

Rechercher des sujets similaires à "copier coller classeurs differents"