Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 [RÉSOLU] Copie automatique de colonnes d'un classeur excel à un autre

ludo64

XLDnaute Nouveau
Bonjour à tous,

Je reviens toujours en tant que débutant en VBA.

J 'ai lu plusieurs discussions qui tournaient autour de la copie de feuille mais impossible de tomber sur ce que je veux.

Mon but à moi serait de copier les colonnes A B et C d'un fichier A Excel dans un fichier B Excel dans une feuille précise, automatiquement, en actionnant un bouton sur le fichier B par exemple ( ce qui me semble plus accessible).

J'espère que vous avez des idées à me transmettre et je sais que vous pourrez m'aider.

Merci d'avance.
 

Jacky67

XLDnaute Barbatruc
Bonjour,
Cela pourrait ressembler à ceci:
VB:
Sub Copier()
Dim Source As String
Source = "D:\Mes documents\test\ClasseurA.xlsx" 'A adapter
    Workbooks.Open Filename:=Source
    'Ci-dessous adapter le nom des feuilles
    ActiveWorkbook.Sheets("Feuil1").Columns("A:C").Copy ThisWorkbook.Sheets("Feuil2").[A1]
    ActiveWindow.Close False
End Sub
 

ludo64

XLDnaute Nouveau
Merci d'avoir intervenu

J'ai essayé d'adapter à ma situation

VB:
Sub Copier()

Dim Source As String

Dim Destination As String




Source = "E:\ ... .xls" 'A adapter

Destination = "E:\ ... .xls"




     Workbooks.Open Filename:=Source

     'Ci-dessous adapter le nom des feuilles

     Workbooks(Source).Sheets("Feuil1").Columns("A:C").Copy Workbooks(Destination).Sheets("Feuil5")

     ActiveWindow.Close False

  

End Sub


Mais j'ai une erreur sur cette ligne, avec le message " Erreur d'exécution '9' "

VB:
  Workbooks(Source).Sheets("Feuil1").Columns("A:C").Copy Workbooks(Destination).Sheets("Feuil5")
 

Jacky67

XLDnaute Barbatruc
RE...
Je n'ai aucune erreur avec
Code:
ActiveWorkbook.Sheets("Feuil2").Columns("A:C").Copy ThisWorkbook.Sheets("Feuil5").[a1]
"Feuil5" doit exister
La cellule de destination doit être spécifiée, [a1] dans l'exemple
Le code est exécuté à partir du classeur de destination (Classeur B)
 

Jacky67

XLDnaute Barbatruc
Re...
Si tu souhaites absolument utiliser
"Source" et "destination"
Il y a ceci:
VB:
Sub Copier3()
Dim Source As String, Destination As String, Chemin As String
Chemin = "D:\Mes documents\test\" 'A adapter
Source = "ClasseurA.xlsx" 'A adapter
Destination = "ClasseurB.xlsm" 'A adapter mais doit être avec l'extension ".xlsm" et enregistrer.
Workbooks.Open Filename:=Chemin & Source
'Ci-dessous adapter le nom des feuilles
Workbooks(Source).Sheets("Feuil1").Columns("A:C").Copy Workbooks(Destination).Sheets("Feuil5").[a1]
Workbooks(Source).Close False
End Sub
 
Dernière édition:

ludo64

XLDnaute Nouveau
Merci bien, mais ta première version me va très bien.

C'est juste que je pensais qu'il fallait faire obligatoirement cette distinction dans le code mais tu m'as prouvé le contraire.

Merci encore de t'être penché autant sur le sujet.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…