Copier/coller entre deux classeurs (avec le classeur de destination fermé?)

Résolu
Signaler
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Bonjour,

voilà, j'ai placé le code ci-dessous dans mon évènement click d'un bouton de commande. il me permet de faire un copié/collé entre les deux classeurs.

il fonctionne très bien, mais je suis obligé pour cela d'ouvrir le fichier de destination avant d'effectuer mon copier/coller.

est-ce qu'il y a moyen de le faire sans pour cela ouvrir précédemment le classeur?

Private Sub TrsftCR_Click()
            Windows("Boutique.xls").Activate
            Sheets("Stock").Select
            Sheets("Stock").Range("G3:G45").Copy
     
            Workbooks("CR13.xls").Activate
            ActiveWorkbook.ActiveSheet.Range("A3").Select
            ActiveWorkbook.ActiveSheet.Paste
end sub

18 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Si tu connais son chemin tu peux  l'ouvrir par le code

Application.WorkBooks.open(CheminXLS)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,

Sinon

Application.WorkBooks.open(CheminXLS)
ActiveWindow.WindowState = xlMinimized

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Bah ca va etre difficile sans l'ouvrir.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

je m'exprime mal, désolé!

en fait je souhaiterais ne pas devoir aller l'ouvrir avant de faire mon copié/collé...
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Merci!

moi j'essayé avec 'Open "fichier.xls" for input as #1' mais ça fonctionnait pas!

est-ce qu'il est possible que le fichier que je viens d'ouvrir reste réduit dans la barre de tache, plutôt que de passer au dessus de mon classeur a partir duquel je copie..?

Encore merci pour ton aide!
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,

Private Sub TrsftCR_Click()
Dim WkBook As WorkBook

   Windows("Boutique.xls").Activate
   Sheets("Stock").Select
   Sheets("Stock").Range("G3:G45").Copy
   
   Set WkBook = Application.WorkBooks.Open(CheminXls)
   WkBook.Visible = False
   WkBook.Activate
   ActiveWorkbook.ActiveSheet.Range("A3").Select
   ActiveWorkbook.ActiveSheet.Paste
End Sub , ----
[code.aspx?ID=41455 By Renfield]
En revanche je suis pas sur que le  WkBook.Activate ne fasse pas revenir le classeur en vue. je n'ai pas testé.

Sinon sur quelle feuille doit se faire la copie?.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Re,

Merci pour ton aide, j'ai essayé, mais il plante sur la ligne
 'WkBook.Visible = False'
erreur 424 objet requis...
je vais essayer de trouver l'erreur!

concernant la copie, elle se fait sur la première feuille du classeur (nommée 'CR1')
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
As tu bien mis, Dim WkBook As WorkBook au début de la procédure?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

euh, j'avais mal retranscris le tableau 'dim'...

mais il plante quand meme encore! ()

toujours la meme ligne avec l'erreur suivante:
erreur 438 propriété ou méthode non gérée par cet objet!
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

en fait, il ne me propose pas 'visible' dans la liste d'événements liés à WkBook...
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Effectivement, pas de propriété Visible pour un objet WorkBook c'est embêtant tout çà.
Réactive ton Classeur source juste après avoir ouvert le classeur destination

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,

Sinon

Application.WorkBooks.open(CheminXLS)
ActiveWindow.WindowState = xlMinimized

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

salut Julien, merci pour ton aide!

j'ai essayé, ça fonctionne presque!

il réduit bien mon second classeur, il sélectionne bien la colonne A3 dans ce meme classeur, mais il fait le 'collé' dans le premier classeur!

je cherche l'erreur et je te tiens au courant!

(excuse moi de ne pas répondre plus vite, mais après 16h00, je ne vais presque plus sur le net!) 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Reposte le code que tu utilises jusqu'à présent.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

salut!

voilà, mon, code ça fonctionne maintenant (j'avais mal placé le 'xlminimize' dans le code!)

il me reste juste un ch'tit probleme (je suis vraiment embetant...)

il reduit bien la fenetre de destination, il colle bien dans cette fenetre, mais... il reduit la taille de mon classeur d'origine (je ne sais pas si je m'exprime bien... il ne la réduit pas dans la barre des tâche, mais il ne la garde pas en plein ecran, il reduit sa taille...)

dois-je utiliser un code du style xlmaximize?

merci!!
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

euh, ok, je crois que j'ai trouvé!

voici le code, il n'y a pas d'erreur? (en tout cas il plante pas!)

Private Sub TrsftCR_Click()

'on copie la zone qui nous intéresse sur la fiche sauvegardée
            Windows("Boutique.xls").Activate
            Sheets("Stock").Select
            Sheets("Stock").Range("G3:G45").Copy
'et on la colle
            Application.Workbooks.Open ("d:\CR13.xls")
            ActiveWindow.WindowState = xlMinimized
            Workbooks("CR13.xls").Activate
            ActiveWorkbook.ActiveSheet.Range("A3").Select
            ActiveWorkbook.ActiveSheet.Paste
            Windows("Boutique.xls").WindowState = xlMaximized
end sub
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Bah ca m'a l'air bon tout ca.

N'oublies pas que si tu estimes que ton problème est résolu, appuie sur le bouton réponse acceptée sur le ou les post qui t'ont aidé a avancer.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Ah oui! j'ai failli oublier de valider les réponses!!

Encore merci pour ton aide!