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 :

Worksheet_Change ne fonctionne pas


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
    Ingénieur en Bâtiment
    Inscrit en
    Janvier 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur en Bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2018
    Messages : 14
    Par défaut Worksheet_Change ne fonctionne pas
    Bonjour
    je vous remercie pour l'aide (possible) que vous me donnerez . :-)

    Je suis nouveau sur ce forum,

    J'ai écrit une procédure Worksheet_Change.

    Cette procédure fonctionne lorsque j'ouvre le fichier par le menu Fichier/Ouvrir/

    Mais lorsque le fichier est ouvert par une autre macro avec Workbooks.Open Filename:=nom du fichier
    Le fichier s'ouvre, mais les macros Worksheet_Change Worksheet_Activate ne fonctionne plus


    Merci d'avance

  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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le fichier s'ouvre, mais les macros Worksheet_Change Worksheet_Activate ne fonctionne plus
    La procédure événementielle Worksheet_Activate intercepte l'événement lorsque l'on active la feuille mais si au moment de l'ouverture du classeur celle-ci est active, l'événement n'est pas déclenché et pour cause. A vérifier.
    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
    Ingénieur en Bâtiment
    Inscrit en
    Janvier 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur en Bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2018
    Messages : 14
    Par défaut
    Bonjour,

    La procédure événementielle Worksheet_Activate intercepte l'événement lorsque l'on active la feuille mais si au moment de l'ouverture du classeur celle-ci est active, l'événement n'est pas déclenché et pour cause. A vérifier.[/QUOTE]

    Effectivement, mais lorsque l'on change une cellule, la procédure Worksheet_change ne marche pas si j'ouvre le fichier avec une macro.

    Si je l'ouvre avec Fichier/Ouvrir elles fonctionnent

    C'est comme si le fait de l'ouvrir avec une macro changeait un paramètre, empêchait les activations de toutes les procédures automatiques.

  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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    le fait de l'ouvrir avec une macro changeait un paramètre, empêchait les activations de toutes les procédures automatiques
    Cela semble curieux.
    Il faudrait déjà voir la ligne de code qui ouvre ce fichier pour avoir une idée
    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
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Mettre cette procédure dans un module standard, de feuille ou du classeur peut importe puis exécuter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Activer()
     
        Application.EnableEvents = True
     
    End Sub
    Si après exécution les procédures événementielles fonctionnent à nouveau, voir si dans le code qui demande l'ouverture il n'y a pas la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.EnableEvents = False

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur en Bâtiment
    Inscrit en
    Janvier 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur en Bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2018
    Messages : 14
    Par défaut
    Bonjour

    Effectivement quand je mets la fonction "Application.EnableEvents = True", cela fonctionne

    Je me suis dit que j'allais mettre cette instruction après l'ouverture du fichier. ( voir code plus bas)
    Mais cela ne marchait pas .
    J'ai alors mis une instruction "Msgbox" pour contrôler le passage par cette instruction
    Et là surprise, je constate qu’après l'ouverture de mon fichier, la macro ne continuait pas





    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
    28
    29
    30
    31
    32
    33
    34
    35
    Sub Acces_Au_Fichier_Rapport()
    '------------------------------
    Dim Classeur
    Dim Trouvé
     
    Trouvé = False
    'Regarde si le fichier est déja été ouvert
    For Each Classeur In Workbooks
        If Classeur.Name = Nom_Fichier_Rapport Then
            Trouvé = True
            Classeur.Activate
            Application.EnableEvents = True
            MsgBox ("de XLAM  Trouvé : Application.EnableEvents = True")
            Exit Sub
        End If
    Next Classeur
     
    'Compose le chemin exact
    Chemin_Complet_Rapport = Determine_les_Repertoires_DropBox_TSc + Chemin_Direct_Rapport + Nom_Fichier_Rapport
     
    On Error Resume Next
    Err.Clear
     
    'Ouvre le fichier
    Workbooks.Open Filename:=Chemin_Complet_Rapport
     
    'La procedure ne continue plus . Pourquoi ?
    Application.EnableEvents = True
    MsgBox ("de XLAM  Pas trouvé : Application.EnableEvents = True")
    If Err.Number <> 0 Then
        Texte = "Fichier non trouvé" + Chr(13) + Chr(13) + "   " + Chemin_Complet_Rapport
    End If
    On Error GoTo 0
     
    Set Fichier_Rapport = ActiveWorkbook

Discussions similaires

  1. [XL-2007] Événement Worksheet_Change ne fonctionne pas?
    Par Lufia dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 23/05/2014, 16h11
  2. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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