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 :

Exécution macro Worksheet_Change automatiquement lors d'une modification


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 151
    Par défaut Exécution macro Worksheet_Change automatiquement lors d'une modification
    Bonjour,
    Je réitère une demande d'aide en expliquant plus en détails mon problème :

    J'aimerais que la macro suivante s'exécute automatiquement si une cellule change de valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Sheets("Donnees").Range("J1") = FAUX Then
     
        Sheets("Patient").Range("F14").ClearContents
        Sheets("Patient").Range("F15").ClearContents
        Sheets("Patient").Range("H14").ClearContents
        Sheets("Patient").Range("H15").ClearContents
     
      End If
    End Sub
    Pour être plus précis, le VRAI ou FAUX de la cellule « Donnees !J1 »
    est simplement créé par un 'Bouton de Contrôle' dont la cellule liée est le "Donnees!J1" et c'est en cliquant sur ce bouton que cette cellule met le mot "VRAI" si coché et "FAUX" si décoché.

    J'ai placé cette macro dans toutes les feuilles du projet mais impossible de l'exécuter en mode "pas à pas", même si je place mon curseur devant le "If" et que je demande l'exécution jusqu'au curseur, rien ne se passe.

    Comme je le dis dans mon message, le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets("Donnees").Range("J1") = FAUX Then….
    fonctionne parfaitement dans une autre macro, j'aimerais simplement qu'il s'exécute automatiquement avec la macro lorsque je clique sur ce bouton.
    J'espère que ces informations pourront vous permettre de m’aider.
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Quelle est donc cette autre macro où VBA sait lire le mot (pas un string) FAUX ?

    J'ai beau tester diverses variantes, FAUX demeure un variant totalement vide

    mais le False que je t'ai montré dans l'autre discussion, lui, réagit conformément aux attendus.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 151
    Par défaut
    Bonjour,

    Je vais joindre un fichier avec un "Bouton à cocher" sur la feuille1, la cellule associée est "feuille2!A1".
    Je mets n'importe quoi dans la cellule "Feuille1!A2"; si je coche ou décoche le bouton, la cellule de la feuille2!A1 varie et met "VRAI" ou "FAUX" mais la macro "Worsheet_Change..." ne s'exécute pas.

    Par contre, si je modifie manuellement la cellule de la feuille2!A1, la macro s'exécute et si j'y mets "FAUX", ma cellule de la feuille1!A2 s'effacera.

    Je pense que le fait de modifier la cellule liée n'entraîne pas l'exécution de cette macro, même si le contenu de la cellule change. (Naturellement, la macro est dans feuille2).

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par electrons Voir le message
    Bonjour,

    Je vais joindre un fichier avec un "Bouton à cocher" sur la feuille1, la cellule associée est "feuille2!A1".
    Pas sûr que joe.levrai va l'ouvrir, ni moi d'ailleurs


    Je mets n'importe quoi dans la cellule "Feuille1!A2"; si je coche ou décoche le bouton, la cellule de la feuille2!A1 varie et met "VRAI" ou "FAUX" mais la macro "Worsheet_Change..." ne s'exécute pas.
    Peut-être que oui, peut-être que non. Je n'ai pas vérifié. Mets un point d'arrêt dans ta procédure d'événement pour être sûr.

    Bien oui c'est vrai. Faut croire que la modification d'une cellule liée à un bouton, ne déclenche pas d'événement de feuille


    Par contre, si je modifie manuellement la cellule de la feuille2!A1, la macro s'exécute et si j'y mets "FAUX", ma cellule de la feuille1!A2 s'effacera.
    C'est évident. Mais comme le montre mon image, ton Faux est juste un effet visuel qui correspond à False en VBA et n'a rien d'équivalent au texte (string) "Faux". Si tu es décisionnel tu devrais décider de ne pas t'obstiner pour rien. N'importe comment, en VBA, False est sans équivoque, alors que faux laisse place à interprétation. Surtout, si quelqu'un doit réutiliser ou modifier ton code et que tu ne travailles plus dans cette boîte.


    Je pense que le fait de modifier la cellule liée n'entraîne pas l'exécution de cette macro, même si le contenu de la cellule change. (Naturellement, la macro est dans feuille2).

    Merci pour votre aide.
    Peut-être que oui, peut-être que non. Je n'ai pas vérifié. Mets un point d'arrêt dans ta procédure d'événement pour être sûr.
    On dirait bien que c'est vrai. Faut croire que tu dois changer d'approche. Mais tester "Faux" à la place de False, c'est un gros problème.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Finalement, j'ai décidé d'ouvrir ton fichier et j'ai modifié mon autre message en conséquence

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour


    Citation Envoyé par joe.levrai Voir le message
    Quelle est donc cette autre macro où VBA sait lire le mot (pas un string) FAUX ?

    J'ai beau tester diverses variantes, FAUX demeure un variant totalement vide

    mais le False que je t'ai montré dans l'autre discussion, lui, réagit conformément aux attendus.
    Je dirais qu'il y a 99,9999999999999999999999999999999 % de chances que son faux soit un False authentique

    Non son FAUX est un False authentique.

    Nom : false.jpg
Affichages : 409
Taille : 44,1 Ko

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2007, 14h17
  2. erreur OLE DB lors d'une modification
    Par flo456 dans le forum ASP
    Réponses: 2
    Dernier message: 24/05/2007, 14h26
  3. Réponses: 20
    Dernier message: 03/04/2007, 16h45
  4. Réponses: 1
    Dernier message: 14/12/2006, 23h06
  5. Redirection automatique lors d'une sélection dans un Select
    Par MiJack dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/12/2004, 18h09

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