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 :

Générer du code automatiquement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 82
    Par défaut Générer du code automatiquement
    Bonjour,

    Je souhaite ajouter du code automatiquement dans le module d'une feuille sans avoir besoin de l'écrire manuellement.

    j'ai testé la procédure suivante et j'ai l'erreur d'exécution 1004 :
    La méthode VBProject de l'objet workbook a échoué

    Il me manque peut-être une référence car j'ai trouvé ce code dans le forum et il devait donc certaineemnt fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Essai_AjoutCode()
     
    Dim x As Integer
    'With Workbooks("Classeur1").VBProject.VBComponents("Accueil").CodeModule
    With ActiveWorkbook.VBProject.VBComponents("M_Essais").CodeModule
     
    x = .CountOfLines
    .InsertLines x + 1, "Public Sub MaProcedure"
    .InsertLines x + 2, "... du code ici"
    .InsertLines x + 650, "... la suite du code"
    .InsertLines x + 651, "End Sub"
    End With
    End Sub
    L'un de vous a-t-il une explication ? Merci d'avance.

  2. #2
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Bonjour,

    il Faut activer la référence "Microsoft Visual basic For Application Extensibility 5.3"

    J'ai relevé quelques anomalies dans ton code. Mais bon, peut-être que je me trompe

    Essaie d'activer la réference et teste. Si ça ne marche pas, on construira ensemble le code.

    Bon courage

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Merci pour ta réponse.

    j'ai ajouté la référence et j'ai toujours le la même erreur d'exécution sur la 1ère ligne.

  4. #4
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Ok, je vois.

    Voilà, je t'explique --> le code que tu nous a fourni ci-dessus, insère du code dans un module déjà existant. dans ton cas le module est nommé "M_Essais".

    Question As-tu déjà dans ton classeur un module nommé "M_Essais" ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 82
    Par défaut
    Oui, le module existe déjà.

    J'ai même fait un Copier / Coller du nom pour éviter une erreur d'orthographe.

    J'ai aussi vérifié qu'une autre macro était exécutable dans le claseur où est la macro d'insertion de code (ici, le classeur de macros persos) et le classeur de destination.

    J'ai aussi activé la référence indiquée dans les 2 classeurs.

    Connais-tu l'instruction pour ajouter un module à partir du VBA pour que je teste aussi cela ? Merci.

  6. #6
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Voici un exemple de code qui crée un module standard et écrit dedans une macro rudimentaire.


    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
    Sub creationModule()
        'Nécessite d'activer la référence
        '"Visual basic For Application Extensibility 5.3"
        '
        Dim WorkB As Workbook
        Dim VBComp As VBComponent
        Dim Z As Integer
     
        'Définit le classeur cible
        Set WorkB = Workbooks("TonClasseur.xls")  'Il faut modifier le nom du classeur ici
     
        'Ajoute un module standard dans le classeur
        Set VBComp = WorkB.VBProject.VBComponents.Add(1)
        'Renomme le module
        VBComp.Name = "TonModule"   ' Même chose, il faut changer le nom ici
     
        'Ajoute une macro dans le module
        With VBComp.CodeModule
            Z = .CountOfLines
            .InsertLines x + 1, "Sub TaMacro()"   ' Change le nom ici si tu veux
            .InsertLines x + 2, "Range(""A10"").Value = ""Martin_77"""
            .InsertLines x + 3, "End Sub"
     
       ' Tu peux rajouter autant de lignes que tu veux..
        End With
     
    End Sub

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

Discussions similaires

  1. [MySQL] Générer un identifiant (code) automatiquement
    Par hartecel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/09/2008, 13h31
  2. [Debutant(e)]Générer du code JSP dynamiquement
    Par Gibier dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/01/2004, 11h54
  3. [EclipseUml] Peut-on générer le code ?
    Par Dof dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 05/06/2003, 15h21
  4. Générer du code HTML
    Par patpst dans le forum C++Builder
    Réponses: 4
    Dernier message: 27/11/2002, 10h27

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