VBA Copier feuille vers le classeur choisi

Résolu
Slyy Messages postés 15 Statut Membre -  
Slyy Messages postés 15 Statut Membre -
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
Configuration: Windows XP / Internet Explorer 7.0

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Slyy Messages postés 15 Statut Membre
     
    Merci pijaku pour ton aide qui m'a permis de réaliser ma macro.

    Slyy
    0