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 :

Création d'une macro événement feuille depuis une macro VBA [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 74
    Points : 94
    Points
    94
    Par défaut Création d'une macro événement feuille depuis une macro VBA
    Bonjour à tous,

    j'ai créé un outils pour des collègues qui crée une feuille "récapitulative" en analysant des données importées depuis une base de données, et leur tache consiste ensuite à analyser la feuille résultante ligne par ligne.

    Comme le tableau est un peu conséquent suivant les critères de la requête, j'ai ajouté manuellement une macro dans la feuille (événement "SelectionChange") de manière à colorer la ligne sur laquelle se trouve leur pointeur la cellule active.

    Je cherche donc comment créer ce code dynamiquement. J'ai trouvé comment lire les différents composents VB de mon projet avec la boucle suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim x As Integer
    For x = 1 To ThisWorkbook.VBProject.VBComponents.Count
        MsgBox ThisWorkbook.VBProject.VBComponents.Item(x).Name
    Next x
    Je pensais ensuite faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ThisWorkbook.VBProject.VBComponents.Item(x).Name = [MaFeuille] then ...
    Mais je ne suis pas certain de pouvoir récupérer la bonne feuille et d'y insérer ensuite du code avec la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.CodeModule.InsertLines
    Si tant est que ce soit la bonne...
    Pensez à mettre le topic en si votre problème a été solutionné. / Un petit est le bien venu si la réponse vous satisfait
    Ce qui mérite d'être fait mérite d'être bien fait.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 74
    Points : 94
    Points
    94
    Par défaut
    Re Bonjour,

    a force de bucher j'ai fini par résoudre le problème moi même... c'était bien la peine de poster me direz vous !

    voici donc la solution, à toutes fins utiles.
    Je me suis souvenu que les objets créés dans Excel se voyaient toujours attribuer l'index d'objet le plus élevé (le dernier en somme). Ca semblait si simple que je n'avais pas osé essayer. J'ai donc trouvé ma feuille de la manière suivante, puis lui ai attribué son code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With ThisWorkbook.VBProject.VBComponents.Item(ThisWorkbook.VBProject.VBComponents.Count).CodeModule
        .InsertLines 1, "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
    ' puis chaque ligne de code individuellement,
    ' pour les textes entre guillemets, il suffit de doubler les guillemets
    ' comme ceci :
        .InsertLines 2, "MsgBox (""Hello World"",VbOkOnly)"
        .InsertLines 3, "End Sub"
    End With
    Bonne continuation à tous !!
    Pensez à mettre le topic en si votre problème a été solutionné. / Un petit est le bien venu si la réponse vous satisfait
    Ce qui mérite d'être fait mérite d'être bien fait.

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

Discussions similaires

  1. [XL-2010] sélection des données depuis une base de données depuis une autre feuille
    Par Learning everyday dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/11/2014, 10h14
  2. Réponses: 11
    Dernier message: 13/03/2014, 20h01
  3. Réponses: 6
    Dernier message: 31/10/2012, 16h01
  4. Réponses: 14
    Dernier message: 23/04/2012, 22h32
  5. Réponses: 2
    Dernier message: 25/12/2007, 17h19

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