Macro active des le changement d'une cellule liee a formule
Fermé
Ericn87
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
26 novembre 2014
-
26 nov. 2014 à 10:07
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 26 nov. 2014 à 17:33
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 26 nov. 2014 à 17:33
A voir également:
- Macro active des le changement d'une cellule liee a formule
- Formule excel pour additionner plusieurs cellules - Guide
- Formule si et - Guide
- Aller à la ligne dans une cellule excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Changement dns - Guide
8 réponses
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
26 nov. 2014 à 11:34
26 nov. 2014 à 11:34
Bonjour
Je pense que c'est plutôt le changement en colonne A qui doit être testé par Woksheet_Change
If not Intersect(Target, Columns("A")) Is Nothing Then
....
Cdlmnt
Je pense que c'est plutôt le changement en colonne A qui doit être testé par Woksheet_Change
If not Intersect(Target, Columns("A")) Is Nothing Then
....
Cdlmnt
Ericn87
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
26 novembre 2014
26 nov. 2014 à 12:06
26 nov. 2014 à 12:06
hello ccm81,
merci pour ta reactivite, j'ai teste et malheureusement ca ne marche pas. J'ai essaye le code en mettant sur le fichier excel en colonne A une fonction Random. Malgre le changement de valeurs, le timer ne s affiche pas.
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A4").Select
If Not Intersect(Target, Columns("A")) Is Nothing Then Cells(Target.Row, Target.Column + 1) = time
End Sub
Merci
E
merci pour ta reactivite, j'ai teste et malheureusement ca ne marche pas. J'ai essaye le code en mettant sur le fichier excel en colonne A une fonction Random. Malgre le changement de valeurs, le timer ne s affiche pas.
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A4").Select
If Not Intersect(Target, Columns("A")) Is Nothing Then Cells(Target.Row, Target.Column + 1) = time
End Sub
Merci
E
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
26 nov. 2014 à 12:17
26 nov. 2014 à 12:17
Bonjour
Worksheet_change ne marche pas avec des formules...
il te faut aller au changement manuel de valeur reportée dans ta feuille
D'autre part, il faudra sauvegarder dans un coin l'heure du changement pour ensuite pouvoir faire la différence
on pourrait peut-^tre parcourir les colonnes données- heures toutes les secondes (ou 1/10 ou...) et faire la différence au cas où une donnée a changée
Ce serait un peu et m^me pas mal "usine à gaz" mais attention aux collisions changement et parcours par seconde
Worksheet_change ne marche pas avec des formules...
il te faut aller au changement manuel de valeur reportée dans ta feuille
D'autre part, il faudra sauvegarder dans un coin l'heure du changement pour ensuite pouvoir faire la différence
on pourrait peut-^tre parcourir les colonnes données- heures toutes les secondes (ou 1/10 ou...) et faire la différence au cas où une donnée a changée
Ce serait un peu et m^me pas mal "usine à gaz" mais attention aux collisions changement et parcours par seconde
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
26 nov. 2014 à 12:21
26 nov. 2014 à 12:21
Bonjour,
Si j'ai bien compris, le problème est qu'une formule ne déclenchera pas la macro, mais cette formule réagit en fonction de saisie manuelle sur le fichier et c'est donc à ce niveau qu'il faudra activer le code. il serait intéressant d'avoir ta formule en B
sinon je pensais à un code vite fait
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B4:B50")) Is Nothing Then
Target.Select
If Target(1, 2) <> "" Then
Target.Offset(0, 2).Select
Selection = (Time - Target.Offset(0, 1).Value)
End If
Target.Offset(0, 1).Select
Selection = Time
End If
End Sub
Si j'ai bien compris, le problème est qu'une formule ne déclenchera pas la macro, mais cette formule réagit en fonction de saisie manuelle sur le fichier et c'est donc à ce niveau qu'il faudra activer le code. il serait intéressant d'avoir ta formule en B
sinon je pensais à un code vite fait
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B4:B50")) Is Nothing Then
Target.Select
If Target(1, 2) <> "" Then
Target.Offset(0, 2).Select
Selection = (Time - Target.Offset(0, 1).Value)
End If
Target.Offset(0, 1).Select
Selection = Time
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 26/11/2014 à 13:25
Modifié par eriiic le 26/11/2014 à 13:25
Bonjour,
je suis de l'avis de ccm81 et michel : c'est plutôt le changement en colonne A qui doit être testé
Tu dis :
B4 et B5 change en fonction des valeurs en colonne A qui seront automatiquement actualises par un autre logiciel.
Y mettre =alea() n'est pas équivalent.
Ton actualisation de A est faite par une écriture, pas par une fonction non ?
Il faut que tu surveilles les cellule écrites antécédentes de B et C.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
je suis de l'avis de ccm81 et michel : c'est plutôt le changement en colonne A qui doit être testé
Tu dis :
B4 et B5 change en fonction des valeurs en colonne A qui seront automatiquement actualises par un autre logiciel.
Y mettre =alea() n'est pas équivalent.
Ton actualisation de A est faite par une écriture, pas par une fonction non ?
Il faut que tu surveilles les cellule écrites antécédentes de B et C.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Ericn87
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
26 novembre 2014
26 nov. 2014 à 13:34
26 nov. 2014 à 13:34
Hello,
Malheureusement les valeurs en colonne A sont determinees par une fonction, c'est pour cela que j'essaye les differents codes que vous proposez en mettant une fonction =alea(). Existe il une fonction similaire a Worksheet_change mais pour des formules ?
En tout cas merci pour votre aide et reactivite sur ce sujet !
E
Malheureusement les valeurs en colonne A sont determinees par une fonction, c'est pour cela que j'essaye les differents codes que vous proposez en mettant une fonction =alea(). Existe il une fonction similaire a Worksheet_change mais pour des formules ?
En tout cas merci pour votre aide et reactivite sur ce sujet !
E
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
26 nov. 2014 à 13:58
26 nov. 2014 à 13:58
Malheureusement les valeurs en colonne A sont determinees par une fonction
Et bien continue de remonter jusqu'à arriver aux cellules saisies qui font évoluer tes formules en B et C.
Ou bien utilise l'événement calculate mais c'est plus cher en ressources et éventuellement en réactivité.
eric
Et bien continue de remonter jusqu'à arriver aux cellules saisies qui font évoluer tes formules en B et C.
Ou bien utilise l'événement calculate mais c'est plus cher en ressources et éventuellement en réactivité.
eric
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
Modifié par Mike-31 le 26/11/2014 à 15:02
Modifié par Mike-31 le 26/11/2014 à 15:02
Re,
je crois qu'un bout de ton fichier anonymisé s'impose parce que nous travaillons que sur des hypothèses et cela peut durer longtemps
pour joindre ton fichier utilise ce lien
https://www.cjoint.com/
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
je crois qu'un bout de ton fichier anonymisé s'impose parce que nous travaillons que sur des hypothèses et cela peut durer longtemps
pour joindre ton fichier utilise ce lien
https://www.cjoint.com/
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Ericn87
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
26 novembre 2014
26 nov. 2014 à 16:37
26 nov. 2014 à 16:37
Hello,
je cherchais jsutement a joindre mon fichier des le debut mais je ne connaissais pas le site cjoint !
Voici le lien du fichier:
https://www.cjoint.com/?DKAqJTNg7o1
je precise: les valeurs en B sont actualisees en temps reel et changent donc quasiment toutes les secondes. Raison pour laquelle sur mon excel la fonction Alea s'actualise en temps reel et pourtant le compteur ne se rafraichit pas. Pour resituer un peu le contexte, les valeurs en B peuvent etre des prix, la temperature atmospherique etc
Merci !
je cherchais jsutement a joindre mon fichier des le debut mais je ne connaissais pas le site cjoint !
Voici le lien du fichier:
https://www.cjoint.com/?DKAqJTNg7o1
je precise: les valeurs en B sont actualisees en temps reel et changent donc quasiment toutes les secondes. Raison pour laquelle sur mon excel la fonction Alea s'actualise en temps reel et pourtant le compteur ne se rafraichit pas. Pour resituer un peu le contexte, les valeurs en B peuvent etre des prix, la temperature atmospherique etc
Merci !
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 26/11/2014 à 17:37
Modifié par eriiic le 26/11/2014 à 17:37
J'ai l'impression que tu n'as pas lu ma réponse de 13:58
Ni tenu compte de celle de 13:23...
eric
Ni tenu compte de celle de 13:23...
eric