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éer une feuille en lui intégrant worksheet_change [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Santé
    Inscrit en
    Février 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Santé
    Secteur : Santé

    Informations forums :
    Inscription : Février 2022
    Messages : 22
    Par défaut Créer une feuille en lui intégrant worksheet_change
    Bonjour,

    Dans mon module d'analyse de données, je crée une feuille dans laquelle je voudrais inclure une macro type worksheet_change(ByVal).
    Malheureusement, worksheet_change(ByVal) ne fonctionnant que dans la feuille concernée, tant la feuille n'est pas créée je ne peux pas inclure ma nouvelle macro.

    Y-a-t-il un moyen VBA de créer une feuille en lui incluant directement une macro?

    Merci pour l'aide et en vous souhaitant de bonnes fêtes

    Physm

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 182
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dans mon module d'analyse de données, je crée une feuille dans laquelle je voudrais inclure une macro type worksheet_change(ByVal).
    Malheureusement, worksheet_change(ByVal) ne fonctionnant que dans la feuille concernée, tant la feuille n'est pas créée je ne peux pa
    La procédure que vous évoquez est une procédure événementielle qui réagit à tous changement de valeur dans une cellule quelconque de la feuille où se trouve cette procédure.
    Si vous voulez intercepter cet événement dans toutes les feuilles du classeur, vous devez privilégier la procédure événementielle Workbook_SheetChange présent dans le module ThisWorkbook

    Pour en savoir plus sur ce sujet, je vous conseille la lecture de ces tutoriels
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Santé
    Inscrit en
    Février 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Santé
    Secteur : Santé

    Informations forums :
    Inscription : Février 2022
    Messages : 22
    Par défaut
    Merci d'avoir pris le temps de répondre.

    Effectivement utiliser Workbook_SheetChange me permettrait d'intercepter sur toute les feuilles mais dans ma pratique cela ne changerai rien.
    J'ai toutes mes macros d'analyse dans un module, que je souhaite exécuter une seule fois sans avoir à rajouter un bout de code, que ce soit dans ThisWorkbook ou dans la feuille concernée.

    Pour ne rien arranger, en fonction du changement de la target, la première chose que fait la macro exécutée est de supprimer cette feuille pour la mettre à jour. Probablement que les procédures événementielles ne sont pas adaptées à ce que je veux faire et que je vais devoir trouver autre chose.

    Bien à vous

    Physm

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 182
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans en savoir plus sur votre problématique, impossible de vous aider.
    Si vous voulez avoir une solution sans modifier vos codes alors que vous rencontrez un problème avec l'existant, je vous souhaite bonne chance
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre averti
    Homme Profil pro
    Santé
    Inscrit en
    Février 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Santé
    Secteur : Santé

    Informations forums :
    Inscription : Février 2022
    Messages : 22
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Sans en savoir plus sur votre problématique, impossible de vous aider.
    Si vous voulez avoir une solution sans modifier vos codes alors que vous rencontrez un problème avec l'existant, je vous souhaite bonne chance
    Bonjour,
    Je suis enclin à modifier mon code en lui-même, pas son emplacement.
    De plus, je n'ai pas de réel souci avec l'existant. Faire cette modification me fera gagner en temps et flexibilité mais n'est pas essentiel à son fonctionnement, j'essaie juste d’optimiser mes codes.

    Merci tout de même pour l'aide

    Physm

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Salut,

    Si tu ne veux pas ajouter de code dans les modules de feuille ou du classeur, il va te falloir encapsuler une référence du classeur dans une classe chargée d'intercepter les évènements (autrement dit: mettre en œuvre le Design pattern Decorator).
    Ca demande une bonne connaissance de la POO et des évènements.

  7. #7
    Membre averti
    Homme Profil pro
    Santé
    Inscrit en
    Février 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Santé
    Secteur : Santé

    Informations forums :
    Inscription : Février 2022
    Messages : 22
    Par défaut
    Bonjour Deedolith

    oh la! Ça devient clairement trop complexe pour moi, mais merci quand même.

    Bien à vous

  8. #8
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    Autre solution; tu crées un modèle vierge caché (visible = veryhidden) de ta feuille avec le code sur onchange puis, au moment voulu, tu dupliques cette feuille modèle. La feuille sera dupliquée code compris.

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

Discussions similaires

  1. créer une feuille de travail
    Par nainco dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/03/2007, 20h31
  2. [XSLT] créer une feuille de style
    Par Robert32 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/12/2006, 10h31
  3. Créer une feuille récap de plusieurs fichiers excel
    Par babacool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/07/2006, 19h56
  4. Créer une feuille de style
    Par systemofaxav dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/07/2006, 17h54
  5. [VBA-E]Créer une feuille qui contient du code
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 04/04/2006, 15h58

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