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 :

Erreur lors de l´export d´un module


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Par défaut Erreur lors de l´export d´un module
    Bonjour à tous !

    Voilà je voudrais utiliser une fonction qui exporte un module de mon projet. Apres quelques recherches je suis tombé là dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.VBComponents("MonModule").Export "c:\Mes documents\Mon_Module" & ".bas"
    Mais dès que je mets cette commande ( par exemple dans une procédure Sub ExportMod() ) et que j´enregistre (CTRL + S), il m´affiche ce message d´erreur


    Quand j´essaye de réouvrir le fichier il m´affiche 2 messages d´erreur à la suite :



    Et il ne s´ouvre pas ! Il devient totalement inaccessible.
    Pourquoi toutes ces erreurs pour une ligne de commande qui en théorie ne s´execute meme pas.
    Merci d´avance de votre aide.
    @ +

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Le niveau de sécurité, peut-être (???)
    Ce que j'essaierais,
    En 1 - passer en revue le nom des différents modules
    En 2 et séparément - l'enregistrement sous condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        for each LeModule In ThisWorkbook.VBProject.VBComponents
             '1 - Affichage
             msgbox LeModule.name & "  type " & LeModule.type
     
     'et une fois testé l'affichage, en un deuxième temps tester l'enregistrement
             '2 - Enregistrement
             if LeModule.name = "MonModule" and LeModule.Type = 1 then
                    ThisWorkbook.VBProject.VBComponents(LeModule.name ).Export _
                     "D:\MesMacros\" & LeModule.name & ".bas"
             endif
        Next
    Le type du module doit être 1 (sauf erreur de ma part)
    Sinon, et si ça ne change rien, à part un pb de sécurité dans V.2007, je ne vois pas.
    Si tu trouves, n'hésite pas à nous signaler la raison.

    Pour tes messages d'erreur, ça ressemble à ce que j'ai eu sur un fichier vérolé par un virus et mis à l'index par l'antivirus. Impossible, quelque soit la méthode, de le récupérer. Pour tenter l'expérience de récupération, regarde , SilkyRoad me donne un cours gratuit Si ça n'a pas fonctionné pour moi, peut-être cela marchera-t-il pour toi
    C'est ce que je te souhaite.
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Par défaut
    Salut,
    merci de ta réponse.

    En fait la première fois que j´ai eu cette erreur, j´ai tout recommencé vu que je n´arrivais plus à accéder au fichier. Maintenant j´ai toujours une copie du fichier où il n´y a pas cette ligne de commande. Donc c´est bon je n´ai rien à récupérer.

    Par contre, j´ai testé ta fonction et il m´affiche bien comme type, le type 1 pour le module que je souhaite exporter, par contre toujours les memes erreurs quand je laisse la ligne de l´export..
    Je suis sous Windows 2000 avec la série Office 2000.
    Comment puis-je donc modifier ce niveau de sécurité dans VB ?
    merci.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Sur 2000, je ne sais pas mais sur V.2003, tu vas dans Excel -> Menu Outils -> Options -> Sécurité -> Bouton "Sécurité des macros" et là, tu baisses d'un niveau, tu testes... ce jusqu'à ce que tu n'aies plus de pb.
    Si c'est ça...
    Tu dis. Une confirmation/infirmation pourrait nous aider à répondre une prochaine fois
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Par défaut
    Hello,

    finalement je n´ai pas utilisé la fonction Export vu que ca ne marchait pas mais j´ai contourné le problème en placant le code de mon module dans une variable et en l´enregistrant dans un fichier :

    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
     
    Dim fso, MyFile
    Dim s As String
     
    'On crée le fichier
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set MyFile = fso.CreateTextFile("C:\Mes Documents\" & "Modul1" & ".bas", True)
     
    ' On récupère le contenu du module
    With ThisWorkbook.VBProject.VBComponents("Modul1").CodeModule
    s = .Lines(1, .CountOfLines)
    End With
     
    ' On l´écrit dans un fichier
    MyFile.WriteLine ("Attribute VB_Name = ""Modul1"" ")
    MyFile.WriteLine (s)
     
    'On ferme le fichier
    MyFile.Close
    Voilà !
    Merci de ton aide.
    @+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je sais que tu as réglé ton pb mais je viens de tester ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub ExporterUnModule()
    ThisWorkbook.VBProject.VBComponents("Module1").Export "c:\Mes images\LeModule" & ".bas"
    End Sub
    Et le module s'est bien retrouvé au bon endroit... Tu es sûr d'avoir validé les bonnes références -> Outils -> Références
    S'il l'une d'elle est marquée "MANQUANT" c'est... qu'elle manque...
    A+

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

Discussions similaires

  1. [AC-2000] Message d'erreur lors du lancement d'une macro contenue dans un module
    Par Tydher dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/08/2011, 14h29
  2. Réponses: 9
    Dernier message: 20/12/2010, 16h01
  3. [Joomla!] Erreur lors de la désinstallation des modules
    Par narama87 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 02/06/2009, 15h03
  4. Réponses: 1
    Dernier message: 05/04/2009, 21h31
  5. Erreur lors de l'exportation des module par macro
    Par ckrikri dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2009, 14h02

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