VBA: macro qui se lance apres modif de certaines cell - VB/VBA/VBS - Programmation
Marsh Posté le 21-12-2005 à 10:37:11
visiblement tu veu lancer ton prog quan il y une modif sur le colonne "D"
essaye comme ca :
Private sub Worksheet_Change(ByVal Target As Excel.Range)
if (target.column = 4) then
....
....
End if
end sub
Marsh Posté le 21-12-2005 à 10:42:19
le problème, c'est qu'il y a d'autres cellules sur la colonne D qui ne doivent pas provoquer la modification...
Marsh Posté le 21-12-2005 à 10:50:21
le plus simple est d'utiliser la fonction case qui permet de spécifier une série de nombre :
Private sub Worksheet_Change(ByVal Target As Excel.Range)
if (target.column = 4) then
select case target.row
case 3,5,6,13,...
...
Ton code
....
end select
End if
end sub
Marsh Posté le 21-12-2005 à 11:33:09
ca c'est une bonne idee
je vais essayer ca tout de suite merci!
Marsh Posté le 20-12-2005 à 16:20:08
bonjour à tous.
Je cherche à écrire une macro qui me lance un calcul suite à la modification des valeurs de certaines cellules uniquement.
J'ai utilisé worksheet_change(ByVal target as Range), mais cela a pour efet de lancer la macro chaque fois qu'une cellule quelconque est modifieé, ce qui engendre un problème d'appel cyclique de ma macro.
En cherchant un peu sur le forum j'ai tenté de faire ça:
Private Sub worksheet_change(ByVal target As range)
If target = range("$D$3" ) Or target = range("$D$5" ) Or target = range("$D$6" ) Or target =
range("$D$13" ) Or target = range("$D$14" ) Or target = range("$D$17" ) Or target
= range("$D$19" ) Or target = range("$D$21" ) Or target = range("$D$22" ) Or
target = range("$D$25" ) Or target = range("$D$26" ) Or target = range("$D$28" )
Or target = range("$D$29" ) Or target = range("$D$31" ) Or target =
range("$D$32" ) Or target = range("$D$37" ) Or target = range("$D$38" )
Then
range("R16" ) = 0.00001
range("W17" ).GoalSeek Goal:=0, changingcell:=range("R16" )
range("AB16" ) = 0.00001
range("AG17" ).GoalSeek Goal:=0, changingcell:=range("AB16" )
End If
End Sub
mais ça n'a rien donné.
Quelqu'un a-t-il une suggestion?
Merci à vous