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

Excel Discussion :

Dupliquer une feuille dans un autre classeur [XL-2010]


Sujet :

Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut Dupliquer une feuille dans un autre classeur
    Bonjour à tous,

    J'ai parcouru le forum à la recherche d'une macro me permettant :
    - d'ouvrir un fichier excel dans rangé dans un répertoire a partir d'un fichier
    - de copier une feuille du fichier ouvert pour la coller dans l'autre classeur en faisant apparaitre le nom du fichier

    J'ai quelque chose du Style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Workbooks("Extraction_PP.xlsm").Worksheets("Extraction_PP").Cells.ClearContents ' Efface le contenu de la feuille qui va recevoir les données
    Workbooks.Open Filename:="C:\Users\GDU\Desktop\ADV\Développement LOB\Last_Procurement_Plan" 'Ouvre le fichier Excel source
    Workbooks("Last_Procurement_Plan").Worksheets("Procurement Plan").Cells.Copy ' Copier la feuille
    Workbooks("Extraction_PP.xlsm").Worksheets("Extraction_PP").Cells.Paste 'Coller la feuille que je viens de copier
    Workbooks("Last_Procurement_Plan").Close False 'Referme le fichier source
    Merci par avance,

    Guillaume

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    - d'ouvrir un fichier excel dans rangé dans un répertoire a partir d'un fichier
    Que veux dire cette phrase ?
    D'après le code que tu affiches, il semble que tu effaces toutes les données d'une feuille X existante dans un classeur A pour faire place à de nouvelles données provenant des cellules d'une feuille Y, d'un classeur B.
    Il me semble plus intéressant et je crois plus rapide alors de supprimer la feuille X du classeur A, et de copier ensuite la feuille Y du classeur B vers le classeur A en la renommant ensuite X.
    Tu trouveras facilement le code à l'aide de l'enregistreur de macros.
    Pour copier ou déplacer une feuille vers un autre classeur
    1. Clic droit sur la feuille à copier
    2. Sélectionner Déplacer/Copier.... dans le menu contextuel qui apparaît
    3. Dans la boîte de dialogue Déplacer ou copier ?, cocher l'option Créer une copie et choisir le classeur de destination dans la liste qui se trouve en dessous du titre Dans le classeur
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    Bonjour,

    Merci pour l'idée, j'ai mis en application mais cette méthode ne m'indique pas le nom du fichier que j'ai dupliqué,

    Je vais poursuivre en faisant comme cela,

    Encore merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Citation Envoyé par g.dupin.gemma Voir le message
    Bonjour,

    Merci pour l'idée, j'ai mis en application mais cette méthode ne m'indique pas le nom du fichier que j'ai dupliqué,

    Je vais poursuivre en faisant comme cela,

    Encore merci
    Bonjour,

    Ou et comment veux tu que le nom de la feuille dupliquée apparraisse?

    Veux tu une boite de dialogue (msgbox) ou dans une cellule?

    CDT
    Seb

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    Bonjour,

    En faite j'aimerai avoir une boite de dialogue qui me demande quel fichier je veux extraite.
    En fonction du fichier que je choisis j'aimerai connaitre le nom de ce fichier et l'inscrire dans la première ligne de la feuille Extraction_PP.
    Et copier les données du fichier source vers la feuille Extraction_PP.
    et de fermer le fichier source.

    Est-il possible de faire cela?

    merci par avance,

  6. #6
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Citation Envoyé par g.dupin.gemma Voir le message
    Bonjour,

    En faite j'aimerai avoir une boite de dialogue qui me demande quel fichier je veux extraite.
    En fonction du fichier que je choisis j'aimerai connaitre le nom de ce fichier et l'inscrire dans la première ligne de la feuille Extraction_PP.
    Et copier les données du fichier source vers la feuille Extraction_PP.
    et de fermer le fichier source.

    Est-il possible de faire cela?

    merci par avance,
    Donc tu veux ouvrir ton fichier source, puis avoir une boite de dialogue qui demande quelle est la feuille que l'utilisateur veut extraire vers Extraction_PP.
    Et sur la feuille extraite tu veux le nom de la feuille dans une cellule.

    Je regarde afin de faire un petit code.
    CDT
    Seb

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    Bonjour,

    La feuille à extraire va tout le temps être la même elle s'appellera tout le temps Procurement Plan, mais ce qui va changer c'est le nom du fichier.
    En ce qui concerne le reste des autres fonctions c'est super si on arrive à extraire le nom du fichier que l'on a dupliqué dans le nouveau fichier.

    Merci par avance,

  8. #8
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Citation Envoyé par g.dupin.gemma Voir le message
    Bonjour,

    La feuille à extraire va tout le temps être la même elle s'appellera tout le temps Procurement Plan, mais ce qui va changer c'est le nom du fichier.
    En ce qui concerne le reste des autres fonctions c'est super si on arrive à extraire le nom du fichier que l'on a dupliqué dans le nouveau fichier.

    Merci par avance,
    Reprenons, la feuille a toujours le même nom :"Procurement Plan" mais c'est quel fichier qui change, le source ou le destinataire?
    Le fichier sera t'il toujours dans le même dossier?
    Pour le nom du fichier c'est pas le plus compliqué

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    C'est le fichier source qui va changer à chaque fois, le fichier source est le carnet de commande de mon client et j'aimerai automatiser certaines taches.

    Merci par avance,

  10. #10
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Citation Envoyé par g.dupin.gemma Voir le message
    C'est le fichier source qui va changer à chaque fois, le fichier source est le carnet de commande de mon client et j'aimerai automatiser certaines taches.

    Merci par avance,
    Les carnets de commande seront ils toujours dans le même dossier?
    c'est pour le chemin d'accés du fichier source.

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    Oui tous les carnets de commande sont rangés dans le même dossier.

  12. #12
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Je te propose un code, mais en premier lieu je tiens a rappeler que je suis débutant et que le code n'est pas parfait mais fonctionne.
    Je sais que tu peux faire la manip avec les classeurs fermés mais je ne maitrise pas du tout
    j'ai créé un userform avec un menu déroulant qui va chercher les fichiers excel existants dans un dossier (dans mon exemple le D).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub UserForm_initialize()
     
      Dim repertoire As String, fichier As String
    repertoire = "D:" 'modifier D: par le chemin du dossier dans lequel se trouve les fichiers d'origines
    fichier = Dir(repertoire & "*.xls")
    Do While fichier <> ""
        Cbx_fichiers.AddItem fichier
        fichier = Dir
    Loop
     
     End Sub
    Puis j'ai mis un bouton dans lequel je verifie si la liste est renseignée, puis je copie et colle la feuille en la renommant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Private Sub CommandButton1_Click()
    Dim Var_Chemin1 As Variant
    Dim Var_Chemin2 As Variant
    Dim Fichier1 As Variant
    Dim Fichier2 As Variant
    Dim nom_fichier As String
    'verifie si la liste est renseignée
        If Cbx_fichiers.Value = "" Then
            MsgBox ("veuillez renseigner la liste")
        Else
            nom_fichier = Cbx_fichiers.Value 'recupere le nom selectionné dans la liste
            Var_Chemin1 = "D:\" & nom_fichier 'modifier D: \ par le chemin du dossier dans lequel se trouve les fichiers d'origines
            Var_Chemin2 = "D:\destinataire.xlsx" 'modifier D:\destinataire.xlsx par le chemin du dossier et le nom du dossier destinataire
            Workbooks.Open Var_Chemin1, 0, ReadOnly:=False
            Fichier1 = ActiveWorkbook.Name
            Workbooks.Open Var_Chemin2, 0, ReadOnly:=False
            Fichier2 = ActiveWorkbook.Name
            Workbooks(Fichier1).Sheets("Procurement Plan").Copy Before:=Workbooks(Fichier2).Sheets("Feuil3")
            ActiveSheet.Name = "Procurement Plan " & nom_fichier 'renomme la feuille collée
            Workbooks(Fichier1).Close savechanges:=False 'ferme le fichier d'origine
            Workbooks(Fichier2).Sheets("Procurement Plan " & nom_fichier).Range("A1").Value = Fichier1 'met le nom du fichier d'origine dans la cellule A1
            Workbooks(Fichier2).Save 'enregistre le fichier "destinataire"
            Workbooks(Fichier2).Close savechanges:=False 'ferme le fichier
        End If
     End Sub
    En espérant que cela te conviendra.
    Je te joints le fichier en plus.

    Bonne journée
    seb
    Fichiers attachés Fichiers attachés

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    Merci pour le code mais je rencontre quelques difficultés pour l'adapter à ma feuille de calcul j'ai des erreurs de partout Grrrr (moi je suis pire que débutant).

    J'ai des erreurs de compilation par exemple Fonction ou variable attendue?

    Extraction_PP (2).xls

  14. #14
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Citation Envoyé par g.dupin.gemma Voir le message
    Merci pour le code mais je rencontre quelques difficultés pour l'adapter à ma feuille de calcul j'ai des erreurs de partout Grrrr (moi je suis pire que débutant).

    J'ai des erreurs de compilation par exemple Fonction ou variable attendue?

    Extraction_PP (2).xls
    je viens de jeter un coup d'oeil, tu n'as pas modifier le code de l'userform.
    Tu as mis le code dans la feuille.
    Sais tu aller dans l'editeur? (alt f11)
    Tu vas dans le dossier "feuilles" et tu clique droit sur le nom du userform a modifier puis code
    Tu verras le code.

    je t'ai modifié le code dans ton fichier.

    CDT
    Seb
    Fichiers attachés Fichiers attachés

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    Merci beaucoup Seb pour ton aide... Mais j'ai encore quelques pour la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Var_Chemin2, 0, ReadOnly:=False
    Ca me fait un message d'erreur quand je lance la macro. " un document nommé" Extraction_PP" est déjà ouvert...

    Je me demande si il est possible de copier du fichier source la feuille "procurement_plan" qui sera tout le temps appelée pareil dans le classeur ou nous développons la macro?

    Merci de ton aide,

    Guillaume

  16. #16
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Le message d erreur provient du fait que ton classeur "destinataire" est déjà ouvert.
    Ton formulaire (userform) tu le mets sur quel fichier?
    Un fichier a part ou le fichier destinataire?
    Si c est sur le fichier destinataire, le code doit être modifie car je suis parti du principe que les 2 classeurs étaient fermés.
    Cdlt
    Seb

  17. #17
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    En fait, pour faire plus claire :

    La macro est sur le fichier destinataire et grâce à celle-ci je vais chercher dans un répertoire le carnet de commande (fichier source) qu'"il faut copier sur le fichier destinataire sur l'onglet Procurement_plan en faisant apparaitre le nom du fichier.

    Merci de ton aide

  18. #18
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Guillaume,
    Tu dois aller dans le code du bouton de l'userform et enlever cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks.Open Var_Chemin2, 0, ReadOnly:=False
    Puis tu remplaces cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Workbooks(Fichier1).Sheets("Procurement Plan").Copy Before:=Workbooks(Fichier2).Sheets("Feuil3")
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Workbooks(Fichier1).Sheets("Procurement Plan").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
    avant la feuille était copiée avant la feuil3, maintenant, elle sera copiée à la fin.

    Bonne soirée

    Seb

  19. #19
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Par défaut
    Merci beaucoup Seb pour ton aide,
    Je vais regarder ça ce matin, merci

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

Discussions similaires

  1. [XL-2007] tester l'existence d'une feuille dans un autre classeur
    Par bruno38 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/06/2012, 16h48
  2. [XL-2002] Macro pour copier une feuille dans un autre classeur
    Par JBeaunez dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2012, 21h46
  3. [XL-2003] Copier une feuille dans un autre classeur
    Par mistermail dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/10/2009, 18h06
  4. [XL-2003] ERREUR 9 Archivage d'une feuille dans un autre classeur
    Par altra dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 18/08/2009, 11h15
  5. Réponses: 2
    Dernier message: 15/02/2008, 09h24

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