VBA copier coller vers autre classeur

Bonjour,

En voulant aider j'ai moi aussi besoin d'aide.

J'ai trouvé un code que je ne parviens pas à finaliser

Private Sub CommandBouton2_Click()
  Dim classeurSource As Workbook
   Dim classeurDestination As Workbook
  'ouvrir le classeur source (en lecture seule)
  Set classeurSource = ThisWorkbook
   'définir le classeur destination
  Set classeurDestination = Application.Workbooks.Open(Filename:="C:\Users\portable leakim\Downloads\Tableau de bord menuiserie.xls")
  'copier les données de la feuille"essai" du classeur source vers la feuille "Travaux année en cours" du classeur destination
  classeurSource.Sheets("essai").ActiveCell.Copy Destination:=classeurDestination.Sheets("Travaux année en cours").Range("AA1")
  'fermer le classeur source
   'classeurSource.Close False
End Sub

J'ai une erreur avec activecell.copy

Pour autant c'est bien ce que je veux faire. En sélectionnant une cellule puis en cliquant sur mon bouton2 je veux retrouver cette valeur dans mon autre classeur.

Merci d'avance,

Leakim

Bonjour,

en l'état de ton code, la cellule active est celle du claaseur de destination que tu viens d'ouvrir... utilise une variable objet avant l'ouverture :

Private Sub CommandBouton2_Click()
Dim c As Range
Dim classeurDestination As Workbook
  'ouvrir le classeur source (en lecture seule)
Set c = ActiveCell
   'définir le classeur destination
  Set classeurDestination = Application.Workbooks.Open(Filename:="C:\Users\portable leakim\Downloads\Tableau de bord menuiserie.xls")
  'copier les données de la feuille"essai" du classeur source vers la feuille "Travaux année en cours" du classeur destination
c.Copy Destination:=classeurDestination.Sheets("Travaux année en cours").Range("AA1")
  'fermer le classeur source
   'classeurSource.Close False
End Sub

bonne journée

@+

Bonjour pierrot93,

Il est vrai que j'avais constaté ce mélange dans le fichier destination et de base.

Reste que je fichier ne s'ouvre plus et qu'il ne ce passe pas grand chose, à vrai dire...

Merci en tout cas,

Je cherche encore,

Leakim

Re,

bah... en l'état, pas modifier le code d'ouverture du classeur.... A voir également où est placé le code ?

Re,

Où est ce qu'il faudrait placer le code ?

Je suis un peu perdu.

Leakim

Re,

en l'état, je suppose que le code est placé dans le module de la feuille où se trouve le bouton.... cela devrait fonctionner....

Re,

le code ci-dessous placé dans le module de la feuille, fonctionne chez moi

Option Explicit
Private Sub CommandButton1_Click()
Dim c As Range
Dim classeurDestination As Workbook
Set c = ActiveCell
Set classeurDestination = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Classeur1.xlsm")
  'copier les données de la feuille"essai" du classeur source vers la feuille "Travaux année en cours" du classeur destination
c.Copy Destination:=classeurDestination.Sheets(1).Range("AA1")
End Sub

Re,

Merci de persister !

Si je comprend bien, mais là je commence à avoir un doute

Option Explicit
Private Sub CommandButton2_Click()
Dim c As Range
Dim classeurDestination As Workbook
Set c = ActiveCell
Set classeurDestination = Workbooks.Open(Filename:=ThisWorkbook.Path & "C:\Users\portable leakim\Downloads\Tableau de bord menuiserie.xls")
  'copier les données de la feuille"essai" du classeur source vers la feuille "Travaux année en cours" du classeur destination
c.Copy Destination:=classeurDestination.Sheets("Travaux année en cours").Range("AA1")
End Sub

Et bien non, cela ne fonction pas

Leakim


Re,

Je reprend,

Option Explicit
Private Sub Bouton2_Cliquer()
Dim c As Range
Dim classeurDestination As Workbook
Set c = ActiveCell
Set classeurDestination = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Tableau de bord menuiserie.xls")
  'copier les données de la feuille"essai" du classeur source vers la feuille "Travaux année en cours" du classeur destination
c.Copy Destination:=classeurDestination.Sheets("Travaux année en cours").Range("AA1")
End Sub

Ce code fonctionne ! euréka !

Lorsque je veux changer la valeur, un message d'enregistrement pour la modif du fichier de destination apparaît... N'y a t'il pas un moyen de masquer?

Leakim

Re,

Lorsque je veux changer la valeur, un message d'enregistrement pour la modif du fichier de destination apparaît... N'y a t'il pas un moyen de masquer?

euh... pas tout compris, moi... sur quelle ligne ?

Re,

Voici ce que cela affiche.Une photo vaut mille mots

captureeng

Leakim

Re,

essaye comme ceci :

Private Sub CommandButton1_Click()
Dim c As Range
Dim classeurDestination As Workbook
Set c = ActiveCell
Application.DisplayAlerts = False
Set classeurDestination = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Classeur1.xlsm")
  'copier les données de la feuille"essai" du classeur source vers la feuille "Travaux année en cours" du classeur destination
Application.DisplayAlerts = True
c.Copy Destination:=classeurDestination.Sheets(1).Range("AA1")
End Sub

Re,

Pas mieux ??? désolé.

Leakim

Re,

bah... fonctionne chez moi... pas le message d'info comme quoi le classeur est déjà ouvert....

Re,

Ecoute je fais poster le fichier comme çà pour la personne qui demandait.

https://forum.excel-pratique.com/post274053.html#p274053

Leakim

EDIT: il semble qu'il ait trouvé !!

Merci pour l'accompagnement !

Re,

il manque la première instruction avant l'ouvertture du fichier...

Application.DisplayAlerts = False
Rechercher des sujets similaires à "vba copier coller classeur"