Rechercher : dans
Par :

VBA Excel Copie feuille dans autre classeur

Dernière réponse le 4 jui 2008 à 16:34:07 Infest, le 4 jui 2008 à 11:23:29 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Excel 2003

1

CapitainCo, le 4 jui 2008 à 11:56:30

"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

Répondre à CapitainCo

2

Infest, le 4 jui 2008 à 13:50:50

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)?

Répondre à Infest

3

CapitainCo, le 4 jui 2008 à 15:10:21
  • +7

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

Répondre à CapitainCo

4

Infest, le 4 jui 2008 à 15:44:08

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?

Répondre à Infest

5

CapitainCo, le 4 jui 2008 à 15:48:39
  • +1

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

Répondre à CapitainCo

6

Infest, le 4 jui 2008 à 16:00:28

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

Répondre à Infest

7

 CapitainCo, le 4 jui 2008 à 16:34:07

Dr

Répondre à CapitainCo