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 macro vers un autre fichier


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 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut Copie d'une macro vers un autre fichier
    Bonjour je souhaite copier un module "toto" d'un fichier vers un autre fichier.

    Malheureusement mon code plante à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     With ActiveWorkbook.VBProject.VBComponents("toto").CodeModule
        S = .Lines(1, .CountOfLines)
      End With
    Pouvez vous m'aider?

    Voici le code complet:


    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
    Sub MAJCodeModule()
     
    Dim S As String, Wbk As Workbook
      tgt = ThisWorkbook.Sheets("Feuil1").Cells(1, 1).Value 'nom fichier excel
     
     'module à copier toto
     
      With ActiveWorkbook.VBProject.VBComponents("toto").CodeModule
        S = .Lines(1, .CountOfLines)
      End With
     
      Set Wbk = Workbooks(tgt) 
      'détruire le module à mettre à jour s'il existe
      On Error Resume Next
      With Wbk.VBProject.VBComponents
        .Remove .Item("toto")
      End With
      On Error GoTo 0
      'ajouter un nouveau module et copier le code
      Wbk.VBProject.VBComponents.Add(1).Name = "toto"
      With Wbk.VBProject.VBComponents("toto").CodeModule
        .AddFromString S
      End With
     
    End Sub

    Merci d'avance

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Dommage que tu n'aies pas indiqué ta version d'Excel, mais bon.

    La première chose à faire, c'est de cocher une case.

    Pour Excel 2003 et avant, c'est, si mes souvenirs sont exacts, dans Options - Sécurité des macros - "Faire confiance au projet Visual Basic" et de la cocher.

    Pour Excel 2010 : Fichier - Options - Centre de gestion de la confidentialité - Paramètres du Centre de gestion de la confidentialité - Paramètres des macros - Accès approuvé au modèle d'objet du projet VBA.

    Pour Excel 2007 ce n'est probablement pas marqué Fichier. Cela doit être le gugusse dans un cercle, en haut à gauche.

Discussions similaires

  1. Copie d'une macro vers un autre fichier
    Par canichon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/11/2013, 18h00
  2. Impossible d'executer une macro d'un autre fichier
    Par gilles06 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/02/2008, 19h36
  3. Réponses: 7
    Dernier message: 16/08/2007, 10h06
  4. [VBA-Excel] Déplacement d'une feuille vers un autre fichier
    Par Olivier95 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2006, 11h17
  5. [VBA Excel] Copie d'une feuille dans un autre fichier
    Par nattyman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2006, 10h35

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