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 :

[VBA-E] Insérer du code dans un module


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut [VBA-E] Insérer du code dans un module
    Hello,

    Voici une procédure pour insérer du code dans un module et un classeur connu.

    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
    Public Sub InsertCode(ByVal Classeur As String, _
                          ByVal Modul As String, _
                          ByVal ProcCode As String)
     
    Dim wb As Workbook
    Dim md As VBIDE.CodeModule
    Dim i As Long
     
    Set wb = Workbooks(Classeur)
    Set md = wb.VBProject.VBComponents(Modul).CodeModule
     
    md.AddFromString ProcCode
     
    Set md = Nothing
    Set wb = Nothing
    End Sub
    j'ai testé, ça semble marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InsertCode "Feuil4","Module1", GetProcCode("Foutoir.xls","UnModule","UneProc")
    edit : Module est un mot clé
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  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
    Points : 15 543
    Points
    15 543
    Par défaut
    Un autre solution signée bbil
    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
    Sub ajouterUnModuleEtInsererDesLignesDeCode() 
    Dim W As Workbook
    Dim vbM As VBComponent
        Set W = Workbooks.Add 'ajoute un nouveau classeur
     
        'Crée un module dans le nouveau classeur
        Set vbM = W.VBProject.VBComponents.Add(vbext_ct_StdModule)
     
        'Insertion des lignes de code dans le module créé
        vbM.CodeModule.InsertLines 1, "Sub Bonjour"
        vbM.CodeModule.InsertLines 2, "  msgBox ""Bonjour Bienvenu dans nouveau classeur : "" & ThisWorkBook.Name"
        vbM.CodeModule.InsertLines 3, "End Sub"
     
        'Appel procedure créée..
        Application.Run W.Name & "!Bonjour"
    End Sub
    Merci bbil

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Une question subsidiaire : vous pensez qu'il est possible d'insérer du code dans un code déja créé ? par exemple si on veux rajouter un détail dans une macro déja existante dans un autre classeur, à un endroit précis ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  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
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour insérer du code dans une macro existante, il faut avoir réservé la place de cette insertion et utiliser ReplaceLine en indiquant le N° de ligne concerné.

Discussions similaires

  1. [VBA-E]Insérer des autotext dans Word à partir d'excel
    Par noordman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2006, 15h34
  2. [VBA-E]Supprimer macro (code dans code feuille de calcul)
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/04/2006, 16h37
  3. [VBA-W]Insérer contenu variable dans page word
    Par jcaspar dans le forum VBA Word
    Réponses: 1
    Dernier message: 24/03/2006, 01h07
  4. Comparaison de code dans plusieurs modules
    Par jbaudin dans le forum Access
    Réponses: 2
    Dernier message: 03/10/2005, 11h47

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