Copier coller des feuilles d'un classeur à un autre classeur Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
s
soukaina
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 23 mai 2014
Version d'Excel : excel2010

Message par soukaina » 6 juillet 2015, 18:33

Bonjour tous le monde,

Salut j'ai regardé un peu dans le forum mais les solutions que j'ai trouvé ne fonctionne pas . Voici ma problématique :

Je veux copier deux feuilles sur un fichier X vers Y sans ouvrir le fichier X.

Les feuilles à copier se trouvent dans le fichier X, la première feuille à copier " plan de transport" puis "planning général".

Voici le code que j'ai trouvé sur internet et j'essaie de l'appliquer sur mon fichier mais ça ne marche pas.
Sub ESSAI()
'
    Dim wk As Workbook 'classeur destinataire
    Set wk = Application.Workbooks.Open("c:\Users\souaab\Desktopstock\Nouveau dossier\stock pre-exp sans prix 2013.xlsm")
    
    ThisWorkbook.Sheets("plan de transport").Cells.Copy wk.Sheets("plan de transport").Range("A1")
    ThisWorkbook.Sheets("planning general").Cells.Copy wk.Sheets("plan de transport").Range("A1")
    
   wk.Close True
End Sub

Bien cordialement
Soukaina
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'941
Appréciations reçues : 29
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 6 juillet 2015, 18:50

Bonjour
il est normal que cela ne fonctionne pas car thisworkbook renvoi au fichier qui contient les macros et donc a priori le fichier de destination et non pas au fichier source...
faire un essai avec Activeworkbook ou tout simplement wk.sheets(...)

Edit : Erratum j'ai compris a l'envers.... cela devrait fonctionner seule mon observation ci dessous reste valable ....


et au passage tu copies deux fois sur la meme feuille donc a priori les données issues de la première copie seront effacées...
et il faudrait peut-etre effacer les données existentes sur la feuille de destination au préalable si elles n'occupent pas exactement les mêmes cellules

fred
Je ne réponds pas aux M.P. non sollicités.
Fred
s
soukaina
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 23 mai 2014
Version d'Excel : excel2010

Message par soukaina » 6 juillet 2015, 20:11

Bonjour,

Je ne sais pas comment traduire ça en code Vba je suis débutante :(.

Normalement je copie la feuille et je l'intègre dans l'autre fichier sans supprimer ou effacer les autres onglets existants.

je veux qu'il ajoute l'onglet plan de transport et planning general intégralement dans le fichier PF CDE sans ouvrir le fichier stock pre exp sans prix 2013 .

Bien cordialement
soukaina
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'941
Appréciations reçues : 29
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 6 juillet 2015, 21:45

si tu veux bien on va repartir de zéro
tu as deux fichiers
stock pre exp sans prix 2013
PF CDE

tu veux copier l'onglet plan de transport et planning general qui se trouve dans stock pre exp sans prix 2013 vers PF CDE
c'est OK ?

maintenant est-ce que les onglets plan de transport et planning général existent déjà dans le fichier PF CDE ??
copier un onglet sans ouvrir le fichier ce n'est pas possible a ma connaissance mais une macro peut le faire pour toi sans que cela soit visible...

fred
Je ne réponds pas aux M.P. non sollicités.
Fred
s
soukaina
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 23 mai 2014
Version d'Excel : excel2010

Message par soukaina » 6 juillet 2015, 23:03

Bonjour,

tu veux copier l'onglet plan de transport et planning general qui se trouve dans stock pre exp sans prix 2013 vers PF CDE
c'est OK ? oui c'est exactement ce que je veux.

maintenant est-ce que les onglets plan de transport et planning général existent déjà dans le fichier PF CDE ?
Non c'est pour cela je veux copier les deux onglets dans le fichier PF CDE.


Je cherche une macro qui peut faire se copier coller sans ouvrir le fichier stock pre exp prix et enregistre le fichier PF CDE.


Si ce n'est pas possible, je peux nommer deux onglets plan de transport et planning general dans le fichier PF CDE et puis je copie le contenue des onglets afin de mettre à jour les données du jour.

Bien cordialement
soukaina
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'941
Appréciations reçues : 29
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 7 juillet 2015, 06:56

Bonjour
le probleme dans ton raisonnement est que la première fois que tu vas lancer la macro les deux onglets n'existent pas dans le fichier de destination mais si tu reelance une nouvelle fois la macro les onglets existent déjà. ... puisque tu veux mettre a jour les données. ....
Encore une question les deux onglets a copier dans le fichier de destination doivent se positionner ou ? Au debut? a la fin??
Fred
Je ne réponds pas aux M.P. non sollicités.
Fred
s
soukaina
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 23 mai 2014
Version d'Excel : excel2010

Message par soukaina » 7 juillet 2015, 08:18

Bonjour,

J'ai pense de faire une liaison entre les deux fichiers ou bien une autre macro qui efface les données existantes et remet les données à jour.

Le mieux est de les positionner vers la fin du fichier destinataire ( je ne sais pas si on peut les masquer après! parce que les utilisateurs devront voir que le Tableau croisé dynamique )

Cdlt

SOUKAINA
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'941
Appréciations reçues : 29
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 7 juillet 2015, 08:27

ahhhhhh tu ne dis pas tout...
dans ce cas il faut que les onglets existent dans le fichiers de destination et surtout avoir une plage de données source des TCD dynamiques....
je regarde pour te faire cela
fred
Je ne réponds pas aux M.P. non sollicités.
Fred
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'941
Appréciations reçues : 29
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 7 juillet 2015, 08:53

voici donc une proposition a mettre dans ton fichier PF CDE
fred
Option Explicit
'http://forum.excel-pratique.com/excel/copier-coller-des-feuilles-d-un-classeur-a-un-autre-classeur-t66227.html
'Fred

Sub Copie()
Dim wsD1, wsD2 As Worksheet 'onglets destinataire
'instancier les deux feuilles de travail
Set wsD1 = ThisWorkbook.Sheets("plan de transport")
Set wsD2 = ThisWorkbook.Sheets("planning general")
'figeage de l'affichage
Application.ScreenUpdating = False
'effacement de toutes les données présentes sur les feuilles de destination
wsD1.Cells.ClearContents
wsD2.Cells.ClearContents
'ouveture du fichier source
Application.Workbooks.Open Filename:="c:\Users\souaab\Desktopstock\Nouveau dossier\stock pre-exp sans prix 2013.xlsm"
'copie du fichier source vers le fichier de destination
ActiveWorkbook.Sheets("plan de transport").Cells.Copy wsD1.[A1]
ActiveWorkbook.Sheets("planning general").Cells.Copy wsD2.[A1]
'fermeture du fichier source sans enregistrement
ActiveWorkbook.Close False
'cache les onglets si ils étaient visibles
wsD1.Visible = False
wsD2.Visible = False
    
End Sub
Je ne réponds pas aux M.P. non sollicités.
Fred
s
soukaina
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 23 mai 2014
Version d'Excel : excel2010

Message par soukaina » 7 juillet 2015, 09:39

Merci Fred ça marche bien :) j'aimerais bien qu'il m'enregistre le fichier PF CDE vers la fin .
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message