Macro déclenchée par changement de valeur d'une cellule

Bonjour,

tout est dans le titre. Le problème est que ma cellule visée est en fait une formule. ( =INDIRECT(...)).

Faut-il utiliser Calculate à la place ? Si oui comment ? ..

Merci beaucoup !

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A19"))
Dim myButton As Button
MsgBox ("yeah")
With ActiveSheet
Cel = Range("A19")
Set myButton = .Buttons("Button 1")
Set myButton2 = .Buttons("Button 10")
    If IsNumeric(Sheets("UserForm").Range("A19").value) Then
        myButton.Visible = True
        myButton2.Visible = False
    Else
        myButton.Visible = False
        myButton2.Visible = True
    End If
 End With
End If

En l'occurence dans mon code A19 =IF(INDIRECT("'"&$B$17&"\["&$D$17&".xlsx]Tool List'!A"&(ROW()-18+8*(ROW()-19)))=0,"",MID((INDIRECT("'"&$B$17&"\["&$D$17&".xlsx]Tool List'!A"&(ROW()-18+8*(ROW()-19)))),1,FIND("-",(INDIRECT("'"&$B$17&"\["&$D$17&".xlsx]Tool List'!A"&(ROW()-18+8*(ROW()-19)))),1)-1))

Bonsoir,

ok pour le fait que la cellule visée est une formule !!! donc pas de change sur celle-ci je crois, donc pas de détection de change !!

Par contre, si sa valeur change, c'est que quelque part dans le classeur il y a un changement ! donc c'est sur cette "source" de changement qu'il faut faire la surveillance événementielle, non ?

@ bientôt

LouReeD

Merci de ta réponse.

Oui mais non ! Car ma cellule pointe vers un autre classeur Excel. J aimerai que quand elle affiche #RÉF! , donc quand il y a un soucis quelque part ( chemin, classeur non ouvert ..) un bouton s affiche et l autre se cache.

Donc je ne peux pas conditionner avec la cible de ma cellule .

Bonjour,

en fait en A19 vous pouvez mettre :

=SIERREUR(IF(INDIRECT("'"&$B$17&"\["&$D$17&".xlsx]Tool List'!A"&(ROW()-18+8*(ROW()-19)))=0,"",MID((INDIRECT("'"&$B$17&"\["&$D$17&".xlsx]Tool List'!A"&(ROW()-18+8*(ROW()-19)))),1,FIND("-",(INDIRECT("'"&$B$17&"\["&$D$17&".xlsx]Tool List'!A"&(ROW()-18+8*(ROW()-19)))),1)-1));"Erreur !")

si la cellule renvoit une erreur (#Ref par exemple) le texte Erreur ! est affiché.

Ensuite dans votre procédure "change" ou selectionchange vous pouvez tester cette valeur

Ou bien mettre une MFC qui colorise la cellule en jaune si = à Erreur !

@ bientôt

LouReeD

Le fait que la cellule affiche "erreur" au lieu de "#REF!" me permettra de déclencher la macro ? Car celà reste tout de même un changement de valeur "calculé" et non manuel, qui n'est pas pris en compte je crois.

Tout à fait !!!

après il ne se passe vraiment rien sur cette feuille ?

Car il y a change, mais aussi le selectionchange,, mais aussi le clic droit, le double clic, activate, le desactivate etc...

Déjà si à l'activation de la feuille le test est fait c'est bien, lors de la désactivation c'est bien aussi.

Mais si vraiment rien ne se passe, alors.... une cellule de couleur suite à l'affichage du mot "Erreur !" devrait mettre en émoies celui qui se trouve devant l'écran, non ?

@ bientôt

LouReeD

Rechercher des sujets similaires à "macro declenchee changement valeur"