Copie d'une plage de cellule vers un autre fichier

Bonjour à tous,

Je suis nouveau sur votre fofo et je débute tout juste avec les macros d'excel

Bref, ça commence bien

Je voudrais créer une macro qui me copie le contenu de trois cellules (A3:C3) vers un autre fichier excel à un endroit précis (par exemple sur A2:C2)

J'ai fait quelques recherches (sur votre fofo et ailleurs) et bricoler un bout de code qui ne fonctionne pas tout à fait:

Sub copie_vers_suivit()

Dim fichier_a_completer As Workbook

'fichier de sortie
fichier_a_completer = Application.Workbooks.Open("C:\Documents and Settings\dim\step 4_5.xlsx", True)

'Ici tu mets les copies des cellules de la feuille d'entrée vers la feuille de sortie
fichier_a_completer.Worksheets("Feuil1").Cells(A, 2) = ThisWorkbook.Worksheets("Feuil1").Cells(A, 3)
fichier_a_completer.Worksheets("Feuil1").Cells(C, 2) = ThisWorkbook.Worksheets("Feuil1").Cells(C, 3)

'ferme le fihcier à compléter   
fichier_a_completer.Clos    

End Sub

Merci d'avance à tous pour votre aide.

ps: avez-vous besoin d'un fichier d'exemple ?

Bonjour

Remplace cette partie de code par celle ci-dessous

ThisWorkbook.Worksheets("Feuil1").Cells(3,A).Copy fichier_a_completer.Worksheets("Feuil1").Cells(2,A)
ThisWorkbook.Worksheets("Feuil1").Cells(3,C).Copy fichier_a_completer.Worksheets("Feuil1").Cells(2,C)

A te relire

Bonjour

Avec les infos fournies

J'avais mal lu

dim a écrit :

Je voudrais créer une macro qui me copie le contenu de trois cellules (A3:C3) vers un autre fichier excel à un endroit précis (par exemple sur A2:C2)

Sub copie_vers_suivit()
Dim fichier_a_completer As Workbook

  'fichier de sortie
  Set fichier_a_completer = Application.Workbooks.Open("C:\Documents and Settings\dim\step 4_5.xlsx", True)

  'Ici tu mets les copies des cellules de la feuille d'entrée vers la feuille de sortie
  ' Ce code
  fichier_a_completer.Worksheets("Feuil1").Range("A2") = ThisWorkbook.Worksheets("Feuil1").Range("A3")
  fichier_a_completer.Worksheets("Feuil1").Range("B2") = ThisWorkbook.Worksheets("Feuil1").Range("B3")
  fichier_a_completer.Worksheets("Feuil1").Range("C2") = ThisWorkbook.Worksheets("Feuil1").Range("C3")
  ' ou
  'ThisWorkbook.Worksheets("Feuil1").Range("A3:C3").Copy Destination:=fichier_a_completer.Worksheets("Feuil1").Range("A2")

  ' Sauvegarde du fichier
  fichier_a_completer.Save
  'ferme le fihcier à compléter
  fichier_a_completer.Close
End Sub

Merci à vous deux, la solution proposée par Banzai64 fonctionne parfaitement.

D'autan que :

 ThisWorkbook.Worksheets("Feuil1").Range("A3:A5").Copy Destination:=fichier_a_completer.Worksheets("Feuil1").Range("A2")
 

Simplifie vraiment la vie.

Merci en tout cas pour votre rapidité !

Si je peux me permettre une nouvelle question sans crée de nouveau post,

J'aimerais retourner le nom de l'onglet qui est visualisé lors du lancement de la macro (par un bouton):

J'ai donc testé ceux-ci car j'ai lu que la commande "ActiveSheet.Name" donne le nom de l'onglet actif

Dim mois_en_cours As String
'l'onglet en cours de visualisation
 mois_en_cours = ActiveSheet.Name

'Ici tu mets les copies des cellules de la feuille d'entrée vers la feuille de sortie
    ' Ce code
fichier_a_completer.Worksheets(mois_en_cours).Range("A5") = ThisWorkbook.Worksheets(mois_en_cours).Range("A3")
    

Mais ça marche pô.

Bonjour

Extrait de l'aide

Set, instruction

Attribue une référence d'objet à une variable ou à une propriété.

La variable mois_en_cours n'est pas un objet(Range,Workbook,Worksheet ......) il ne faut pas utiliser Set

Ton code devient

mois_en_cours = ActiveSheet.Name

Merci encore une fois.

Rechercher des sujets similaires à "copie plage fichier"