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 :

Utiliser Worksheet_Change sans appuyer sur Entrer


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Utiliser Worksheet_Change sans appuyer sur Entrer
    Bonjour,

    J'ai un problème que je n'arrive pas résoudre malgré mes nombreuses recherches.

    J'utilise dans ma macro une procédure du type Worksheet_Change, le but étant d'uploader une base Access a chaque fois que la cellule "target" change de valeur, et de mettre à jour un classement de ces données dans cette même feuille Excel.

    Le problème est le suivant: la cellule "target" change de valeur automatiquement car j'ai une formule dedans (reliée à un autre programme qui me donne des données en temps réel). Je ne change donc pas la valeur de la case manuellelemt et appuie sur Enter ensuite. La proédure Worksheet_Change ne s'exécute donc pas, mais la cellule "target" change bien de valeur.

    La question est donc: comment faire pour que Worksheet_Change n'attende pas que j'appuie sur Enter pour s'exécuter?


    Merci beaucoup pour aide,

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    de la même façon que tu as l'evenement "quand change", tu as l'evenement "quand calculate"

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut Toops et le forum
    Comment tu changes ta valeur ?
    Tu donnes des généralités et on doit de rtépondre précisement ?
    le cellule mère de ta formule change et donc, c'est sur celle-ci que doit se caler la macro sur changement.
    A+

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Merci pour vos réponses.

    Je vais essayer d'être plus clair: pour l'instant ma macro utilise la procédure Worksheet_Change sur une cellule qui contient une fonction qui va chercher un prix en temps réel sur les marchés financiers. Du coup, le prix change environ toutes les 10 secondes, mais comme je ne rentre pas la valeur manuellement, Worksheet_Change ne comprend pas qu'il y a eu un changement.

    Je vais tenter d'utiliser Worksheet_Calculate, mais je pense que j'aurais d'autres problèmes parce que j'ai des cellules dont la valeur change toutes les secondes.
    D'ailleurs, est-il possible d'utiliser Worksheet_Calculate en lui indiquant de regarder une cellule en particulier? (un peu comme le "target" avec Worksheet_Change)?

    Merci beaucoup pour vos efforts

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut Toops et le forum
    pour l'instant ma macro utilise la procédure Worksheet_Change sur une cellule qui contient une fonction qui va chercher un prix en temps réel sur les marchés financiers
    quelle fonction ? Quelle cellule ?
    Ta macro Worksheet_Change agit quelque soit la cellule modifiée ?

    Plus tu es moins précis, moins l'aide est plus efficace!

    A+

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Je ne voudrais pas paraître pessimiste mais je ne crois pas qu'on puisse détecter un changement d'une valeur sur formule (ou fonction), même avec Worksheet_Calculate.
    En tout cas j'avais essayé il y a longtemps et ça ne fonctionnait pas.

    Mais si tu utilises une fonction, pourquoi ne pas la modifier pour qu'elle déclenche ensuite ce que tu veux ?

  7. #7
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par neupont Voir le message
    Je ne voudrais pas paraître pessimiste mais je ne crois pas qu'on puisse détecter un changement d'une valeur sur formule (ou fonction), même avec Worksheet_Calculate.
    Bonjour tlm,

    Si c'est possible, supposons que l'on veut surveiller la modification, suite à un calcul, de la valeur de la cellule C1 de la feuille "Feuil1" :

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Ah c'est donc comme ça que ça marche ?
    Eh ben je serai pas venu pour rien

  9. #9
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Vu que l'on ne peut pas utiliser de Target, c'est le seul moyen que je vois pour vérifier la modification d'une cellule dont la valeur change via une formule.

    Maintenant si on a 150 cellules à vérifier...là je ne vois pas comment faire hormis d'utiliser l'événement calculate pour la feuille entière.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Peut-être "encapsuler" la formule dans une fonction maison qui déclencherait aussi la 2ème phase, et utiliser dans la feuille cette fonction maison plutôt que la formule ?
    Jamais essayé.
    Mais ta solution doit déjà pouvoir dépanner pas mal.

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    mais on peut mémoriser la valeur de cette cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    quand change : cel = cette valeur
    quand calculate : cel1 = cette valeur
    si cel1<> cel executer macro

  12. #12
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Tu n'as pas forcément l'événement Change, la formule peut faire référence à d'autres feuilles voir même d'un autre classeur.

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    et sur calculate ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public cel
     
    quand calculate :
     cel1 = cette valeur
    si cel = cel1 : exit sub
    sinon cel = cel1
    executer macro

  14. #14
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bin oui...c'est ce que j'ai fait

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci à tous pour votre aide, et merci en particulier à fring.

    Ton idée marche nickel !

    T'es le meilleur

  16. #16
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Si ton problème est résolu, merci de cliquer sur le tag

  17. #17
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    Citation Envoyé par fring
    Bin oui...c'est ce que j'ai fait
    yes, je commence a etre a niveau

Discussions similaires

  1. Saisie au clavier sans appuyer sur Entrée
    Par Invité dans le forum Général Python
    Réponses: 1
    Dernier message: 14/05/2008, 15h23
  2. Afficher un résultat sans appuyer sur la touche (Variable Php -> HTML -> Javascript)
    Par nafix dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/01/2008, 21h34
  3. Réponses: 8
    Dernier message: 11/04/2007, 11h52
  4. ne pas soumettre le formulaire en appuyant sur "entrer"
    Par pekka77 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 31/08/2006, 13h40
  5. Réponses: 9
    Dernier message: 10/11/2005, 23h31

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