Copier des cellules d'un tableau excel vers des cellules d'un autre classeur excel

FiF0o

XLDnaute Nouveau
Bonjour,

Je cherche depuis quelques jours sur internet une solution à mon problème mais je bloque toujours alors je me suis décidé d'exposer mon problème ici! :)
Je m'explique, j'aimerais pouvoir effectuer une macro qui copie-colle des cellules d'un onglet d'un classeur excel vers des cellules d'un onglet d'un autre classeur excel.

Je dispose de 2 fichiers excel dans C:\Documents and Settings\user\ :
- un ficher (source) nommé Donnes_Brutes avec un onglet T1
- un fichier (destination) nommé Consolidation avec un onglet T1

Je voudrais copier des plages de cellules de l'onglet T1 du fichier excel source et les coller vers d'autres plages de cellules de l'onglet T1 de mon fichier Consolidation (template).

J'ai crée mon bouton CopyOther et inséré le code ci-dessous :

Code :

Code:
Sub CopyOther()
Dim Donnees_Brutes As Workbook, Consolidation As Workbook
 
'ouvrir le classeur source (en lecture seule)
Set Donnes_Brutes = Application.Workbooks.Open("C:\Documents and Settings\user\Donnees_Brutes.xlsx", True)
'définir le classeur destination
Set Consolidation = ThisWorkbook
 
'copier les données cellules de la "Feuil1" de l'onglet T1 du classeur source vers les cellules de la "Feuil1" de l'onglet T1 du classeur destination
Donnees_Brutes.Sheets("Feuil1(T1)").Range("F127:F128").Copy Consolidation.Sheets("Feuil1(T1)").Range("E4:E5")
 
'fermer le classeur source
Consolidation.Close False
 
End Sub

J'ai réussi à corriger quelques erreurs lors du débogage mais la macro ne marche pas.

Si quelqu'un pouvait m'aider cela serait gentil,
ou bien me proposer une macro plus "académique" vue que je suis complètement débutant :eek:
Merci d'avance
Cordialement,
FiF0o
 

James007

XLDnaute Barbatruc
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Bonjour,

Tu ne dis exactement comment le bug se produit ...

Mais attention ...car il faut que le nom des variables soit identique ...

Set Donnees_Brutes

A +
:)
 
G

Guest

Guest
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Bonjour et bienvenue sur le forum,

C'est plutôt pas mal pour un débutant.

tes onglets s'appellent "T1" ou "Feuil1(T1)"
Si c'est simplement "T1" Remplacer les Sheets("Feuil1(T1)") par Sheets("T1")
Tes plages source et destination on la même forme et même taille, cela ne devrait pas poser de problème.

A+

[Edit] Salut James:), l'avait pas vu celle-là:)
 

FiF0o

XLDnaute Nouveau
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Tout d'abord merci pour ces rapides réponses,
En fait dans le monde développeur les Microsoft Excel Objets s'appellent :
- Feuil(T1)
-ThisWorkbook
Sinon l'onglet de mon ficher excel s'appelle T1

Concernant le message d'erreur, je n'ai même pas de débogage et j'ai le message qui s'affiche lorsque le ficher plante : Envoyer le rapport d'erreur VS Ne pas envoyer le rapport d'erreur.

Merci :)
 
G

Guest

Guest
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Re,
En fait dans le monde développeur les Microsoft Excel Objets s'appellent :
- Feuil(T1)

Si tu fais référence à ce que tu vois dans l'explorateur de projet, dans Feuil1(T1)
tu as Feuil1 qui est le 'codename' de la feuille et T1 qui est le 'displayname' le nom affiché en bas de la feuille dans l'interface utilisateur modifiable par l'utilisateur.

Pour faire référence à une feuille par VBA tu peux soit directement faire appel à son 'codename' sans (sheets):
Feuil1.range("A2") par exemple

soit par son nom affiché:
Sheets("T1").Range("A2")

soit par son numéro d'index (qui varie suivant les feuilles ajoutées supprimées déplacées->donc non fiable)
Sheets(1).range("A2")

En aucun cas Sheets("Feuil1(T1)") ne fonctionnera si ta feuille s'appelle 'T1'.

A+
 

FiF0o

XLDnaute Nouveau
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Merci beaucoup pour ces renseignements :)

Je viens de modifier le code :

***************************
Sub Export()

Dim Donnees_Brutes As Workbook, Consolidation As Workbook

'ouvrir le classeur source (en lecture seule)
Set Donnees_Brutes = Application.Workbooks.Open("C:\Documents and Settings\User\Donnees_Brutes.xlsx", True)
'définir le classeur destination
Set Consolidation = ThisWorkbook

'copier les données cellules de la "Feuil1" de l'onglet T1 du classeur source vers les cellules de la "Feuil1" de l'onglet T1 du classeur destination
Donnees_Brutes.Sheets("T1").Range("B1:B3").Copy Consolidation.Sheets("T1").Range("B1:B3")

'fermer le classeur source
Consolidation.Close False

End Sub
******************
Malheureusement, il y a une erreur d'éxecution sur cette ligne : Set Donnees_Brutes = Application.Workbooks.Open("C:\Documents and Settings\User\Donnees_Brutes.xlsx", True)
Erreur d'exécution 1004 pourtant le chemin semble bon....

Merci d'avance,
Bonne fin de soirée & bon week-end :)
FiF0o
 

James007

XLDnaute Barbatruc
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Re,

Tu peux essayer :
Set Donnees_Brutes = Application.Workbooks.Open("C:\Documents and Settings\User\Donnees_Brutes.xlsx", ,True)

Parce que le ReadOnly est en fait le troisième argument ...

A +
:)
 

FiF0o

XLDnaute Nouveau
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Merci,

Toujours la même erreur malheureusement,
Peut-être envisager un autre code?
Le dev me frustre... :)
Bonne fin de soirée et bon week-end!
 

James007

XLDnaute Barbatruc
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Bonjour,

Désolé mais le code fonctionne correctement ...

Tu peux essayer sans ton argument ReadOnly ... mais il faut être extrêmement vigileant au libellé de ton chemin, et au nom du fichier ...

A +
:)
 

FiF0o

XLDnaute Nouveau
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Bonjour James,

Merci pour cette réponse.
L'argument ReadOnly est donc l'ouverture en lecture seule :
"
'ouvrir le classeur source (en lecture seule)
Set Donnees_Brutes = Application.Workbooks.Open("C:\Documents and Settings\User\Donnees_Brutes.xlsx", True)
"
En supprimant cette ligne cela devrait marcher?

Mais du coup, si on ne définit pas ou pas pointer un fichier, comment la macro va chercher le bon fichier ?
(Comme je disais je suis débutant :) )

Merci,
FiF0o
 

James007

XLDnaute Barbatruc
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Re,

Je n'ai pas été assez clair ... l'argument est uniquement un élément de l'instruction ...

cela donne :

Set Donnees_Brutes = Application.Workbooks.Open("C:\Documents and Settings\User\Donnees_Brutes.xlsx")

A +
:)
 

FiF0o

XLDnaute Nouveau
Re : Copier des cellules d'un tableau excel vers des cellules d'un autre classeur exc

Bonjour,

Merci pour cette réponse et désolé pour ma réponse tardive mais je suis un peu pris au travail en ce moment,
Je vais tester cela quand j'ai un peu de temps :D
Merci beaucoup,
FiF0o
 

Discussions similaires

Statistiques des forums

Discussions
312 234
Messages
2 086 467
Membres
103 226
dernier inscrit
smail12