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 :

Exporter un Userform VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 72
    Par défaut Exporter un Userform VBA
    Bonjour à tous, si vous pouviez m'aider (encore une fois) sur un petit probléme, en fait, j'essaye d'exporter et d'importer un userform avec ses codes depuis un classeur pour des mises à jour sur un autre classeur, tout ça par un autre classeur qui n'a rien a voir avec les deux précédents. Seulement, ça ne marche pas, j'ai plusieurs pistes mais aucune fonctionne ! Vous pourriez m'aider ???

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Sans voir comment tu essaie d'exporter/importer cet UserForm... Sans voir le code qu'il exécute (références relatives ou absolues...)... Je ne vois pas comment on pourrait.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 72
    Par défaut
    Oui, c'est pas faux, sorry

    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
     Dim Fichier As String, Repertoire As String
        Dim Wb As Workbook
        Dim fichierex2
        Dim fichierex1
        Dim objfso
        Dim i As Byte
        Dim VBcomp As VBcomponent
        Application.ScreenUpdating = False
    fichierex2 = "D:\personnel\TEST\BIT PAPIER.xls"
    fichierex1 = "X:\BIT PAPIER\BIT PAPIER.xls"
        '-----------------------------------
        'Export du UserForm1
        Workbooks.fichierex1.VBProject.VBComponents.Export "X:\BIT PAPIER\copieUSF.frm"
        '-----------------------------------
        With Workbooks(fichierex2).VBComponents.Remove.VBComponen ("UserForm1")
        End With

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Tu as un exemple dans le tuto ci-dessous, au chapitre IV-E

    http://silkyroad.developpez.com/VBA/VisualBasicEditor/

    La première chose à faire, que je ne vois pas dans ton code, est d'ouvrir le fichier source et le fichier cible

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 72
    Par défaut
    Merci mais c'est là dessus que j'avais travaillé et pour être franc, je séche un peu... Surtout que dans le fichier source et destination, j'ai des userform qui se lancent tout seul ! Donc pour les ouvrir pour travailler dessus sans lancer l'automation... J'ai un soucis

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Voici le code de SilkyRoad adapté et testé, il te reste à adapter les noms et chemins des fichiers source et cible ainsi que le nom du UserForm. Les macros dans le fichier source ne seront pas exécutées.
    Remarque : il n'y a pas de gestion d'erreur en cas d'existance d'un UserForm portant le même nom dans le fichier cible.

    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
    Sub Export_Import_Module_Et_Userform()
        Dim FichSource As String, FichCible As String
        Dim WbSource As Workbook, WbCible As Workbook
     
        Application.ScreenUpdating = False
        Application.EnableEvents = False
     
        FichSource = "D:\Divers\Macro\tests\Classeur_test.xls"
        FichCible = "D:\Divers\Macro\tests\Test.xls"
     
        Workbooks.Open Filename:=FichSource
        Set WbSource = ActiveWorkbook
     
        Workbooks.Open Filename:=FichCible
        Set WbCible = ActiveWorkbook
     
        WbSource.VBProject.VBComponents("UserForm1").Export "C:\copieUSF.frm"
        WbCible.VBProject.VBComponents.Import "C:\copieUSF.frm"
     
        WbSource.Close False
        WbCible.Close True
     
        Set WbSource = Nothing
        Set WbCible = Nothing
     
        Application.EnableEvents = True
        Application.ScreenUpdating = True
     
        'efface les deux fichiers créés
        Kill "C:\copieUSF.frm"
        Kill "C:\copieUSF.frx"
        MsgBox "Opération terminée."
    End Sub

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

Discussions similaires

  1. [XL-2000] Userform VBA Excel
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/04/2015, 13h49
  2. Réponses: 0
    Dernier message: 31/07/2012, 10h27
  3. Recuperer userform VBA
    Par zoumzoum59 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 22/11/2007, 21h24
  4. Réponses: 4
    Dernier message: 07/01/2007, 12h55
  5. Réponses: 2
    Dernier message: 11/04/2006, 19h09

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