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 :

copier un form d'un classeur dans un autre classeur en VBA est il possible de coder autrement ?


Sujet :

Excel

  1. #1
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 435
    Points
    1 435
    Par défaut copier un form d'un classeur dans un autre classeur en VBA est il possible de coder autrement ?
    bonjour,
    j'ai créer ce code qui fonctionne, la question : est il possible de coder plus efficacement ? merci.

    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
    Private Sub CommandButton6_Click()
        'Importe un Form d'un autre Workbook
        '----------------------------------------------
     
        'Exporte un form de ce book "C1.xlsm" dans le sub folder "\XL_Objet\" de ce book
        '----------------------------------------------
        FolderPath = Application.ActiveWorkbook.Path & "\XL_Objet\"
        Set fs = CreateObject("Scripting.FileSystemObject")
        If Not fs.FolderExists(FolderPath) Then fs.CreateFolder (FolderPath)
        '----------------------------------------------
        'l'objet peut etre exporté sous un autre nom
        ObjetVBComponentsName = "Form_TEST_Export"
        ObjetVBComponentsNameNew = "Form_TEST_Export.frm"
        'effacer (ou ne pas exporter)
        If fs.FileExists(FolderPath & ObjetVBComponentsNameNew) Then fs.DeleteFile (FolderPath & ObjetVBComponentsNameNew)
        '----------------------------------------------
        Workbooks.Open (ActiveWorkbook.Path & "\C1.xlsm")
        Workbooks("C1.xlsm").VBProject.VBComponents(ObjetVBComponentsName).Export (FolderPath & ObjetVBComponentsNameNew)
        Workbooks("C1.xlsm").Close
        '----------------------------------------------
        On Error GoTo ErrorGestion
        '----------------------------------------------
     
        'Importe un fichier Form.frm
        '----------------------------------------------
        ActiveWorkbook.VBProject.VBComponents.Import (FolderPath & ObjetVBComponentsNameNew)
        '----------------------------------------------
    Exit Sub
    'Routine de gestion d'erreur
    ErrorGestion:
        Select Case Err.Number
            Case 60061
                OldNumber = OldNumber + 1
                For Each vbc In ActiveWorkbook.VBProject.VBComponents
                    Do While vbc.Name = ObjetVBComponentsName & "_Old_" & OldNumber
                        OldNumber = OldNumber + 1
                    Loop
                Next
                'RenameVBComponent
                ActiveWorkbook.VBProject.VBComponents(ObjetVBComponentsName).Name = ObjetVBComponentsName & "_Old_" & OldNumber
                ActiveWorkbook.VBProject.VBComponents.Import (FolderPath & ObjetVBComponentsNameNew)
            Case 50132, 50135
            Resume Next
        End Select
    End Sub
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 435
    Points
    1 435
    Par défaut
    bonjour,
    merci kiki29, j'ai zappé cette page.

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. [Toutes versions] Copier les résultats d'une recherche dans un autre classeur 2
    Par sossso112333 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/05/2015, 20h52
  2. Réponses: 10
    Dernier message: 18/02/2015, 16h48
  3. [LibreOffice][Tableur] Basic - Copier des colonnes et les coller dans un autre classeur
    Par ancel17 dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 21/03/2014, 11h45
  4. [XL-2000] VBA-Copier la valeur d'une liste dans un autre classeur
    Par Noe06 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2012, 12h01
  5. [XL-2007] Referencer un classeur dans un autre par code vba
    Par Bonero dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/06/2010, 16h37

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