VBA Copier feuille vers le classeur choisi

Résolu/Fermé
Slyy Messages postés 12 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 4 mai 2010 - 8 mars 2010 à 21:35
Slyy Messages postés 12 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 4 mai 2010 - 11 mars 2010 à 15:17
Bonjour,

Je cherche à archiver les données d'une feuille appelée "Etude" contenue dans un classeur "Reference" vers un des autres classeurs présents sur le bureau, dont le nom est défini par l'utilisateur (utilisation d'un inputbox). J'ai essayé ce code mais ca ne marche pas, je n'arrive pas à transferer les données vers le classeur demandé par l'utilisateur. Quelqu'un aurait-il une solution pour me débloquer?

Sub transfert()

Dim chemin as String
Dim fichier as String

Workbooks("Reference").Sheets("Etude").select

nom_classeur = InputBox ("Veuillez entrer le nom du classeur dans lequel vous voulez introduire la feuille?")

chemin = "C:\Documents and Settings\Bureau"
fichier = chemin & "\" & nom_classeur & ".xls"

Sheets("Etude").Copy After:=Workbooks (fichier).Sheets(1)

End Sub


Merci.

Slyy
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 mars 2010 à 09:03
Salut,
Ta macro est bonne, le code exact. Cependant, ton classeur "destination" est, semble t'il, fermé au moment de la copie. Le plus simple serait de l'ouvrir et le refermer sitôt la copie effectuée :
Sub transfert() 
Dim chemin as String 
Dim fichier as String 
nom_classeur = InputBox ("Veuillez entrer le nom du classeur dans lequel vous voulez introduire la feuille?") 
chemin = "C:\Documents and Settings\Bureau" 
fichier = chemin & "\" & nom_classeur & ".xls" 
Workbooks (fichier).Open
Workbooks("Reference").Sheets("Etude").Activate
Sheets("Etude").Copy After:=Workbooks (fichier).Sheets(1) 
Workbooks (fichier).Activate
Workbooks (fichier).Save
Workbooks (fichier).Close
End Sub 

En cadeau, pour remplacer ton InputBox (effectivement, celle ci sous entends que l'utilisateur est quelqu'un d'averti!!); une méthode pour ouvrir un fichier excel ou même pour en stocker le nom...

Sub ouvrir_fichier()
GetOpenFileName:
      ChDir "C:\"
      CeFichier = Application.GetOpenFileName("xls Files (*.xls), *.xls")
      If VarType(CeFichier) = vbBoolean Then
            Exit Sub
      Else
            'ouvre le classeur choisit
            Workbooks.Open Filename:=CeFichier, Origin:=xlWindows
      End If
End Sub

0
Slyy Messages postés 12 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 4 mai 2010
11 mars 2010 à 15:17
Merci pijaku pour ton aide qui m'a permis de réaliser ma macro.

Slyy
0