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 :

Macro sur changement valeur cellule?


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut Macro sur changement valeur cellule?
    Bonjour à tous,

    Voici mon souci,
    J'ai une cellule dans laquelle j'ai un lien vers une cellule d'un autre fichier, la formule est du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[Fichier.xls]ONGLET!$DB$27
    J'aimerais executer un code lorsque la valeur de la cellule de l'autre fichier change Mais ce code ne dois s'executer que lorsque cette cellule change de valeur et pas les autres.

    Il faud donc tenir compte du "Range" qui est modifié. j'ai essayé avec la fonction : Mais comme a l'ouverture du fichier j'ai au moin une 50ène de lien qui sont réactualisé, le code est executé à chaque fois donc c'est super long.

    Je voudrais donc un code comme Calculate mais qui tienne compte du range, j'ai aussi essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheet_Change(ByVal Target As Range)
    Mais ça ne fonctionne pas pourtant la valeur de la cellule change...

    Merci de votre aide.

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Sauf erreur de ma part le Worksheet_Change ne fonctionne qui si un changement manuel intervient => pas cool dans ton cas...

    Pas vraiment le temps de creuser mais un première piste pourrait être de stocker la valeur de cette cellule dans une feuille masquée par exemple.
    A l'ouverture, comparaison de cette valeur à la valeur de la cellule liée dans l'autre fichier (j'espère être clair...)

    Une autre option serait de désactiver la mise à jour automatique des liaison, de vérifier si les valeurs sont identiques entre les deux fichiers, si non, lancer la mise à jour des liens.

    A+

  3. #3
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Ok, mais si la valeur change lorsque le fichier est ouvert, la macro ne sera pas utilisée...

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Là je te suis plus, quel fichier ouvert? Le source ou le cible?

    Quoi qu'il en soit, avec la deuxième piste, rien t'empêche de relancer la "vérification" sur un autre évènement...

    A+

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 926
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 926
    Par défaut
    Salut
    A mon avis la 1er idée de Fvandermeulen me semble la plus adapté.

    Imagine cellule A1 lié a un autre fichier, la cellule A2 est utilisé comme cellule de teste.
    Dans ton code (Calculate) tu compares le contenu de A1 et A2:

    -si A2<>A1 le lien a été mis a jour: tu exécutes alors le code que tu souhaites voir être déclenché (une Sub ou une function), puis tu mets la valeur de A1 dans A2

    -si A1=A2 pas eu de changement: la cellule A1 n'a pas été mise a jour lors de ce recalcul.

    Au 1er lancement A1 contient une valeur A2 est vide, donc ta sub/function est exécutée et A2 est mise a jour.
    Si A1 est mis a jour via l'autre fichier, A1 est diffèrent de A2 -> exécution sub/function + mise a jour A2
    Si un autre cellule est recalculée mais que A1 n'a pas été modifié, le code n'est pas exécute.

    Attention quand même avec ce type de structure, la sub/function appelée ne doit pas être trop lourde si tu veux faire le teste sur un grand nombre de cellule, par ce que Calculate est appelé sur n'importe quel calcul de la feuille.

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Lancer une macro sur changement de valeur cellule
    Par maximilien59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/01/2012, 12h10
  2. Lancer une macro sur changement de valeur cellule
    Par reyzilin dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/12/2011, 18h57
  3. lancer macro si changement valeur cellule + condition
    Par tikam75007 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/11/2009, 13h25
  4. exécution macro sur changement valeur cellule, juste un truc qui cloche.
    Par laatysha dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/05/2008, 10h00
  5. [VBA-E]Lancer une macro sur changement de valeur cellule ?
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2006, 15h22

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