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 :

copier un onglet d'un autre fichier, le copier et le nommer dans le mien [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Par défaut copier un onglet d'un autre fichier, le copier et le nommer dans le mien
    Bonjour à tous,
    J'ai trouvé le code ci dessous sur le forum. Depuis mon fichier de départ, le code permet de sélectionner un autre fichier, puis un onglet de ce fichier.
    Le code d'origine copiait le contenu dans la feuil3 (ligne 17 que j'ai passé en commentaire)
    Je voudrais ajouter une feuille, coller dedans ce que j'ai copier plus haut, et nommer cette nouvelle feuille "essai".
    J'ai ajouter les lignes 18-19-20, mais le code plante à la ligne 19 : erreur d'execution '100' : la méthode paste de la classe worksheet à échoué.

    J'imagine qu'il ne reconnait pas l'activesheet, ou ne sait pas quoi copier...

    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
    Option Explicit
    Public wbks As Workbook
    Public wbkc As Workbook
    Public feuil$
     
    Sub importer()
        Dim choix$, Ws As Worksheet, feuil$, x$
        Set wbkc = ThisWorkbook
        MsgBox ("Selectionner le fichier à importer dans ce classeur")
        choix = Application.GetOpenFilename("Fichiers Excel (*.xls; *.xlsx; *.xlsm),*.xls; *.xlsx; *.xlsm")
        If choix = "" Then Exit Sub Else Set wbks = Workbooks.Open(choix)
        For Each Ws In wbks.Worksheets
            UserForm1.ListBox1.AddItem Ws.Name
        Next Ws
    UserForm1.Show
    wbks.Close 0
    'Feuil3.Select
    Sheets.Add
                ActiveSheet.Paste
                ActiveSheet.Name = "essai"
    Merci de votre aide
    Benoit

  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 179
    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 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'imagine qu'il ne reconnait pas l'activesheet, ou ne sait pas quoi copier...
    Absolument pas.
    A partir du moment où on utilise Sheets.Add, il y a automatiquement une insertion de feuille dans le classeur Actif et cette nouvelle feuille devient l'objet ActiveSheet (la feuille active). C'est l'équivalent du Clic droit sur l'onglet d'une feuille et la commande Insertion

    C'est forcément la méthode Paste qui coince car on ne voit nulle part l'instruction Copy
    Pour copier une feuille entière, on passe pas par un Copier/Coller
    Manuellement pour copier ou déplacer une feuille, on fait un clic droit sur l'onglet de la feuille et on sélectionne la commande Déplacer ou Copier...
    Ensuite dans la boîte de dialogue, on choisi le classeur et la feuille où on souhaite copier ou déplacer
    Utilise l'enregistreur de macro et tu auras la méthode à utiliser
    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 confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Par défaut
    Bonjour Philippe, merci
    Je vois bien le principe du sheet.select et sheet.copy, je l'ai utilisé avec succès dans une autre macro.
    Cependant...dans le code que j'ai recopié, je ne vois ni select, ni copy...et pourtant, il copie bien l'onglet sélectionné et le colle en feuil3. (feuil3 existante d'ailleurs). Avouez que c'est perturbant pour le profane. y'a t'il d'autres fonctions, objets, userform... planqués quelque part et que je n'aurait pas vu?
    Peut être que ce code est trop compact pour mon niveau. Du coup, je ne le comprend pas bien et ne sais pas l'adapter. Y'aurai-t il une autre méthode pour :
    -cliquer sur un bouton de commande
    -parcourir un exploreur
    -sélectionner un fichier
    -sélectionner un onglet de ce fichier
    -copier l'onglet
    -le coller dans le fichier de départ, avant un onglet qui serait tjrs le même
    -le nommer avec un nom qui serait tjrs le même

    un post, un tuto à me recommander?
    Merci

  4. #4
    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 179
    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 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Y'aurai-t il une autre méthode pour :
    -cliquer sur un bouton de commande
    -parcourir un exploreur
    -sélectionner un fichier
    -sélectionner un onglet de ce fichier
    -copier l'onglet
    -le coller dans le fichier de départ, avant un onglet qui serait tjrs le même
    -le nommer avec un nom qui serait tjrs le même
    un post, un tuto à me recommander?
    • cliquer sur un bouton de commande, voir la FAQ Les feuilles de calcul→Les contrôles de formulaire
    • parcourir des dossiers, des fichiers (comme l'explorateur) : Voir exemple dans cette discussion
    • sélectionner, un fichier, un onglet : Une fois ouvert en réalité on ne sélectionne pas, on travaille directement sur l'objet
    • copier un onglet : Cela dépend si c'est dans le même classeur ou sur autre classeur ou un nouveau classeur (Exemple dans cette discussion)
    • nommer avec un nom qui serait tjrs le même : nommer un onglet c'est la propriété Name de l'objet Sheet ou Worksheet

    Quelques tutoriels à lire pour débuter

    Pour en savoir plus sur les sujets traités dans les tutoriels proposés ci-dessus

    Les incontournables pour utiliser l'éditeur et l'indispensable pour déboguer
    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

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Par défaut
    Quand on comprend comment fonctionnent les userform, listbox etc...c'est plus simple. Forcément me diras tu....

    Merci pour les liens. Dans le code que j'avais copié, j'ai pu découvrir le code de la listbox. C'est là que ce cachait le copier/coller. Et là que j'ai pu ajouter mon insertion et nommage de feuille.
    Encore 2-3 ajustements à faire pour coller pile-poil à mon besoin, mais le gros du code est fait.

    Merci encore et bonne fin de journée
    Benoit

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

Discussions similaires

  1. [XL-2007] Macro Transfert d'onglets vers d'autres fichiers déjà existants
    Par Jean.Boutin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2017, 17h29
  2. Réponses: 4
    Dernier message: 24/11/2017, 16h46
  3. Copier un onglet sur un autre fichier excel
    Par dimitri70 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/10/2013, 11h22
  4. Copier onglet sur un autre fichier excel
    Par dimitri70 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 27/09/2013, 16h42
  5. Réponses: 1
    Dernier message: 20/09/2009, 10h18

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