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'une WorkSheet (incluant un ListObject,..) dans un classeur d'une autre instance d'Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Octobre 2018
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 216
    Par défaut Copie d'une WorkSheet (incluant un ListObject,..) dans un classeur d'une autre instance d'Excel
    Bonjour,

    Je recherche in moyen de copier une WorkSheet dans une instance d'Excel qui diffère de celle de la source. Je precise qu'il faille à tout prix que l'instance Excel de déstination soit différente de celle de la source... car je souhaite tout encapsuler dans une classe dédiée au traitement des fichiers externes (non-présente ici pour se concentrer à l'essentiel). L'idéal serait de copier la feuille telle quell sans avoir à remodifier le contenu (ListObject,...)

    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
    Option Explicit
     
    Sub test()
     
        On Error GoTo exit_sub
     
        Dim pApp As New Excel.Application
     
        pApp.Visible = True
     
        Dim pWorkBook As Workbook: Set pWorkBook = pApp.Workbooks.Add
     
        'Sheet1 est la WorkSheet à copier du WorkBook de l'instance courante d'Excel contenant notamment le ListObject
        Sheet1.Copy pWorkBook.Worksheets(1) '<- ne fonctionne visiblement pas !!
     
        Debug.Print "ok"
     
    exit_sub:
     
        pApp.Quit
     
        Set pApp = Nothing
     
    End Sub
    Merci par avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Orbeaman Voir le message
    Bonjour,

    Je n'ai pas vu l'intérêt de créer une nouvelle instance pour simplement dupliquer un onglet dans un nouveau fichier. Il vous suffit de réouvrir ce fichier avec votre nouvelle instance une fois créé.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Sub TestTransfertListObject()
     
    Dim ShSource As Worksheet
    Dim pWorkBook As Workbook
    Dim pApp As Object
    Dim Chemin As String, NomFichier As String
     
        On Error GoTo Exit_sub
     
        Chemin = ActiveWorkbook.Path
        NomFichier = "Test1.xlsm"
        Set ShSource = Sheets("Feuil1")
     
        ShSource.Copy
        Set pWorkBook = ActiveWorkbook
        With pWorkBook
             .SaveAs Filename:=Chemin & "\" & NomFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled
             .Close
        End With
        Set pWorkBook = Nothing
     
        Set pApp = CreateObject("Excel.Application")
        With pApp
             .Visible = True
             Set pWorkBook = .Workbooks.Open(Filename:=Chemin & "\" & NomFichier)
             With pWorkBook
                 ' Suite du programme.....
                 '.....
                  Debug.Print "ok"
                  .Close savechanges:=True
             End With
     
         End With
     
     
        GoTo Exit_sub
     
    Exit_sub:
     
        Set ShSource = Nothing
        Set pWorkBook = Nothing
     
        pApp.Quit
        Set pApp = Nothing
     
    End Sub

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/12/2011, 08h33
  2. tri et copie vers une autre feuille
    Par dianbobo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/05/2010, 16h23
  3. Enregistrement de fichier "distants" dans une autre version d'Excel (95)
    Par bravojr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/10/2008, 17h00
  4. Réponses: 19
    Dernier message: 22/06/2007, 09h54
  5. Recherche dans une autre feuille de Excel même classeur
    Par kourria dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/06/2007, 22h29

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