VBA Excel Copie feuille dans autre classeur [Résolu/Fermé]

- - Dernière réponse :  VBA75 - 28 avril 2011 à 12:08
Bonjour,

Je cherche à faire une macro qui, en cliquant sur un bouton Archivage, créer une copie de sauvegarde de cette page dans un autre classeur (dont on obtient l'emplacement via Application.GetOpenFilename).

Mais ça marche pas

en supposant que "Fichier" contient l'emplacemment du fichier d'archivage :
Fichier = "C:\Archivage.xls"
Planning2008 est la feuille à copier, et dans laquelle se trouve le bouton Archivage

Je fais :

Private Sub Ok_Click()
Sheets("Planning2008").Copy After:=Workbooks(Fichier).Sheets(xlLast)
Unload UserForm4
End Sub

mais il me met une erreur dans la ligne (L'indice n'appartient pas à la sélection)

Une idée? Une méthode différente?
Merci
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
60
38
Merci
apres test cela marche avec ca

Private Sub CommandButton1_Click()
Var_Chemin = "D:\Perso_JDC\Classeur2.xls"
Fichier1 = ActiveWorkbook.Name
Workbooks.Open Var_Chemin, 0, ReadOnly:=False
Fichier2 = ActiveWorkbook.Name
Workbooks(Fichier1).Sheets("Feuil1").Copy Before:=Workbooks(Fichier2).Sheets("Feuil3")
End Sub


tu n'as plus qu'à adapter a ton cas

Dire « Merci » 38

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63201 internautes nous ont dit merci ce mois-ci

aaaaah ça fait plaisir...
Merci!

Et juste un petit détail en plus : pour que la nouvelle page se place en dernière position tu fais comment?
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
60
5
Merci
normalement il faut mettre "after" mais cela ne marche pas chez moi alors la seul solution je pense c'est de faire un worksheet.add mais pas la motive de tester
mouais ça ira comme ça je ne vais pas me prendre la tête...

en tout cas merci beaucoup c'était cool de m'aider
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
60
4
Merci
"L'indice n'appartient pas à la sélection" : cela ceut dire que tu dois activer le fichier source avant de copier la feuille; et l'ouvrir si ce n'est pas fais
4
Merci
Pour ne plus avoir l'erreur, essaye :
Workbooks(Source).Sheets("Planning2008.xls").Copy After:=Workbooks(Fichier).Sheets(xlLast) 
3
Merci
Ca ne fonctionne pas. J'ai essayé en activant le fichier cible, en l'ouvrant, ou les deux :

(Source = fichier source, Fichier = Fichier cible)

Workbooks.Open Filename:=Fichier
Windows(Fichier).Activate
Workbooks(Source).Sheets("Planning2008").Copy After:=Workbooks(Fichier).Sheets(xlLast)

Si je fais ça, ça me met l'erreur pour la 2ème ligne. Si je ne la mets pas, l'erreur est due à la suivante.

Ce n'est pas possible de copier une page dans un autre classeur sans l'ouvrir (l'autre)?
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
60
3
Merci
dr