IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copie d'un classeur fermé [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut Copie d'un classeur fermé
    Bonjour !

    Je voudrais copier la feuille entière d'un classeur vers un autre. Cependant je voudrais le faire sans préciser le nom de ce classeur et sans l'ouvrir. En clair, je lancerai ma macro du classeur dans lequel je veux copier les données. J'ai essayé avec ce code cependant ça ne fonctionne pas il me copie les données sur la feuille source dans un autre onglet. Le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    nom = Application.GetOpenFilename("Nom fichier,*.xls")
    Chemin = nom
    Fichier1 = ActiveWorkbook.Name
    Workbooks.Open Chemin, 0, ReadOnly:=False
    Fichier2 = ActiveWorkbook.Name
    Workbooks(Fichier1).Sheets(1).Copy Before:=Workbooks(Fichier2).Sheets(1)
    Si vous avez des solutions n'hésitez pas !

    Merci !

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Si ce sont uniquement les données d'un onglet que tu souhaites copier, il faut utiliser la copie d'une plage de cellules (Range) à la place de l'onglet (Sheet)

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    Merci pour ta réponse.

    Je viens d'essayer mais ca ne fonctionne pas .

    En fait mon code fonctionne sauf qu'il me copie les données dans la mauvaise feuille. En effet je lui demande de me copier les données du fichier que j'aurai sélectionner et que j'appelle "nom" dans mon code et de les copier dans la feuille active cependant il me les collent dans le fichier "nom" et non dans la feuille active. J'espère que je suis clair dans mon explication.

    Merci.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim NomFichier As Variant
    Dim Fichier1 As Workbook, Fichier2 As Workbook
    Application.ScreenUpdating = False
    Set Fichier1 = ThisWorkbook
    NomFichier = Application.GetOpenFilename("Nom fichier,*.xls")
     
    If NomFichier <> False Then
        Set Fichier2 = Workbooks.Open(NomFichier, 0, ReadOnly:=False)
        Fichier2.Sheets(1).Copy Before:=Fichier1.Sheets(1)
        Fichier2.Close
        Set Fichier2 = Nothing
    End If
    Set Fichier1 = Nothing
    Application.ScreenUpdating = True
    le code dans fichier1

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    Merci beaucoup pour ta proposition elle fonctionne à merveille !

    Cependant j'ai une dernière petite question . Est-ce qu'il est possible de lui dire de copier le contenu dans le premier onglet et non pas dans un nouvel onglet. J'ai déduit que c'était l'argument "Before" qui déterminait où copier le contenu cependant j'ai essayé de le remplacer par "In" mais ça ne fonctionne pas.

    Merci pour votre aide.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu peux dans ce cas par exemple faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier2.Sheets(1).Cells.Copy Fichier1.Sheets(1).range("A1")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Copie d'un classeur fermé
    Par Nono Sto dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/08/2014, 15h29
  2. [XL-2007] Copie lignes classeur ferme vers classeur de travail (ouvert)
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/06/2012, 10h50
  3. [XL-2003] Copie de donnée classeur fermé
    Par celebrom dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2012, 12h51
  4. [XL-2002] lecture recherche copie enregistrement dans un classeur fermé
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/11/2011, 15h06
  5. Copie de données depuis un classeur fermé
    Par kiki29 dans le forum Contribuez
    Réponses: 0
    Dernier message: 15/03/2008, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo