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 :

EnableEvents dans un UserForm


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut EnableEvents dans un UserForm
    Bonjour à tous,

    Je voulais juste savoir si quelqu'un pouvait répondre à une question qui, je pense, a déjà été posée quelques fois mais je ne trouve pas de réponse qui me satisfasse...

    Comment utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents= False
    dans un UserForm ?

    Car selon MSDN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.EnableEvents = False 
    ActiveWorkbook.Save 
    Application.EnableEvents = True
    Permet de sauvegarder sans lancer l'événement WorkBook_BeforeSave... Or, quand je l'utilise dans un formulaire, il ne fonctionne jamais.

    Sinon, j'ai vu également que l'on doit utiliser EnableEvents en début de chaque Sub avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.EnableEvents = False then Exit Sub
    Mais je trouve ça super long quand on a plein de macros impactées et surtout un peu lourd comme façon de faire..

    Pouvez-vous me dire pourquoi ceci ne fonctionne pas :

    Un UserForm avec 1 TextBox, 1 CheckBox (cochée par défaut) et 1 CommandButton (qui écrit quelque chose dans la TextBox) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox1_Change()
    MsgBox "Les Events sont activés si vous voyez ce message après avoir appuyé sur le bouton",vbInformation
    End Sub
     
    Private Sub CheckBox1_Change()
    Application.EnableEvents = CheckBox1.Value 'Si on la coche, on autorise les Events, sinon on les désactive. 
    End Sub
     
    Private Sub CommandButton1_Click()
    TextBox1.Value = Int(Rnd*10000)
    End Sub
    Merci d'avance

    Quentin

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    EnableEvents determine la detection ou non des evenements dans l'application, comme Worksheet_Change ou Workbook_BeforeSave, mais je ne crois pas que cela empeche de detecter les clics sur des boutons d'un formulaire.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Bonjour jpcheck,

    C'est vrai qu'en y réfléchissant, vu que chaque action d'un UserForm est enclenchée par un Event... Ce serait stupide de les bloquer et de rendre, du coup, le formulaire inutile... Sais-tu cependant s'il existe un équivalent interne aux UserForms ? Sinon je passerai par "if XXX = false then exit Sub" avec une variable à moi en début de macro, ce que j'ai déjà fait mais je trouvais ça un peu chiant.

    Merci pour ta réponse

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Ce que j'applique dans differents est tout simplement de jouer sur l'Enabled des Controls
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub MonControl_Click()
    If Me.MonControl.Enabled Then
    Else
    End if
    End Sub
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. [VBA-E] Problème avec ShowModal dans un UserForm
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 09h19
  2. [VBa-E] Object Ole "image bitmap" dans une Userform?
    Par gootsu dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/07/2006, 14h24
  3. Réponses: 8
    Dernier message: 11/06/2006, 12h23
  4. [VBA excel]graph dans un userform .._
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/05/2006, 18h45
  5. [VBA-E]graphique excel dans un userform
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/03/2006, 09h03

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