|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre expérimenté
![]() Date d'inscription: janvier 2007
Messages: 562
|
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 :
=[Fichier.xls]ONGLET!$DB$27 Il faud donc tenir compte du "Range" qui est modifié. j'ai essayé avec la fonction : Code :
Worksheet_Calculate Je voudrais donc un code comme Calculate mais qui tienne compte du range, j'ai aussi essayé : Code :
Worksheet_Change(ByVal Target As Range) Merci de votre aide. |
|
|
|
|
|
#2 |
|
Membre Expert
![]() Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
|
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+
__________________
N'oubliez pas le si votre problème est solutionné.
|
|
|
|
|
|
#3 |
|
Membre expérimenté
![]() Date d'inscription: janvier 2007
Messages: 562
|
Ok, mais si la valeur change lorsque le fichier est ouvert, la macro ne sera pas utilisée...
|
|
|
|
|
|
#4 |
|
Membre Expert
![]() Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
|
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+
__________________
N'oubliez pas le si votre problème est solutionné.
|
|
|
|
|
|
#5 |
|
Expert Confirmé
![]() |
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 méchant Qwaz sur Msn ... inutile de me rajouter sur msn pour que je fasse votre boulot (les concernés sont au courant, les autres relax Le monde dans lequel on vit HammerFest Score PowerBall Gyroscope Green : 11847 |
|
|
|
|
|
![]() |
||
Macro sur changement valeur cellule?
|
||
| Outils de la discussion | |
|
|