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

SDK Discussion :

[VB]Modifier une macro à partir d'une autre macro.


Sujet :

SDK

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 38
    Points : 37
    Points
    37
    Par défaut [VB]Modifier une macro à partir d'une autre macro.
    Bonjour,

    Savez vous s'il est possible sous BO de modifier une macro VB à partir d'une autre macro VB ?

    Sous Excel, cela ne me pose pas de problème, mais je n'arrive pas à adapter mon code sous BO.

    Merci.

  2. #2
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Pourtant il devrait y avoir le même comportement que sous Excel. Il se passe quoi exactement ?
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Bonjour nuke_y,

    Sous Excel, le code ci-dessous permet d'insérer une ligne en 3ème position dans la proc "MacroAModifier" qui se trouve dans le "Module1"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Sub essai()
      With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        LiDeb = .ProcBodyLine("MacroAModifier", 0)
        .InsertLines LiDeb + 3, "a=a+1"
      End With
    End Sub
    En fait je n'arrive pas à adapter cette macro pour qu'elle fonctionne sous BO.

    Merci

  4. #4
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Certes, mais quand tu dis "je n'arrive pas" il se passe quoi exactement ?
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Re,

    BO ne comprend pas les mots :

    ThisWorkbook (c'est bien normal)
    VBProject
    VBComponents
    CodeModule
    ProcBodyLine
    InsertLines

    Après avoir regardé les références dans Excel (outils/références), il semble que ces instructions font partie de : Microsoft Excel 10.0 Object Library.

    Donc, la question est : serait il raisonnable de penser qu'il existe une référence BO permettant de faire la même chose mais en VB orienté BO ?

    Vu la pauvreté de la documentation BO, je vois pas trop ou je peux trouver ça.

    Avez vous des idées ? (Je continue mes recherches).

    Je devrai peut être expliquer pourquoi j'essaye de faire cela :

    J'ai développé un code permettant de lancer des extractions d'arborescences selon des chemins et des serveurs spécifiques (en dur dans mes macros).

    Le soucis est : si le chemin change, je devrai réadapter mon code. N'ayant pas un accès de modification sur les serveurs de productions, cela nécessiterai des demandes dont je me passerai bien.

    Je pourrait bien sur créer un fichier TXT ou même un cube pour stocker mes infos, mais j'aimerai éviter cela ;

    Placer les variables contenant les chemins dans un module bidon puis modifier les lignes via une autre proc VB (lors de l'appel d'un userform par ex) m'aurait arrangé. J'emploi cette méthode dans Excel afin d'éviter de stocker mes données dans les feuilles Excel.

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Salut.

    J'ai déjà créé/modifier du code dynamiquement, mais c'était sous VBA Access. Pour cela, je ne crois pas que j'utilisais une librairie spécifique à Access, mais je n'arrive plus à mettre la main sur ce (vieu) projet, du coup je ne peux rien certifier.
    Ce dont je me souviens, c'est que c'était un peu galère : en gros, pour créer une fonction (ou procédure), il fallait entrer le code au format texte en paramètre d'une fonction, ou encore entrer une ligne de code en spécifiant le n° de la ligne où je voulais la placer (genre setLigne ("ma_fonction", "mon_code", num_ligne) )...

    Dit comme ça, c'est pas le bout du monde, mais bien que je ne puisse pas donner plus de détails pour l'instant, il me semble qu'au final, créer une fonction était gérable, mais la modifier était plutôt fastidieux : il était plus simple de la recréer complétement.

    Bon, enfin je n'ai pas vraiment fait avancer le schmilblick mais je pense que le forum VB serait plus approprié pour ton problème.
    De mon côté, je vais essyer de retrouver mon code et quelques infos sur la question.

    A+

Discussions similaires

  1. [XL-2007] Ouverture /macro/ fermeture d'une feuille à partir d'une autre..
    Par ericmicro dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/03/2014, 12h11
  2. [Batch] Créer une chaine à partir d'une variable et d'une autre chaine
    Par mlle lain dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 10/11/2009, 16h26
  3. Réponses: 2
    Dernier message: 05/01/2009, 12h45
  4. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  5. [Macro excel]selectionner une ligne à partir d'une recherche
    Par heavenly dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/04/2007, 16h26

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