Zlopeck
XLDnaute Junior
Bonjour à toutes et à tous,
Afin de lancer une macro à partir du contenu d'une cellule et comme mes connaissances en VBA sont très limitées, j'ai cherché sur le forum et j'ai trouvé ce qui semblait me convenir : si le contenu de la cellule C3 est OUI, la macro "macro_oui" est lancée et la "macro_non" si C3 = NON
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address = "$C$3" then
if target.value = "OUI" then call macro_oui
if target.value = "NON" then call macro_non
end if
end sub
J'ai donc essayé d'adapter cette macro à mes besoins :
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address = "$D$15" then
if target.value = "MODIFICATION" then call Déverrouillage_feuille
if target.value <> "MODIFICATION" then call Verrouillage_feuille
end if
end sub
Mais lorsque ma cellule D15 affiche MODIFICATION ma macro Déverouillage_feuille ne s'execute pas (la feuille ne se déverrouille pas) et lorsque ma feuille est déverrouillée, le fait que le contenu de D15 soit différent de MODIFICATION, ma macro Verrouillage_feuille (insertion d'une formule et verrouillage de la feuille) ne se lance pas.
Cependant je n'ai pas de message d'erreur ni de débogage (J'en suis d'ailleurs étonné)
Ces deux macros réalisées avec l'enregistreur de macros fonctionnent parfaitement lorsqu'elles sont lancées par la fonction executer mais pas moyen d'automatiser le lancement à partir du contenu de D15.
J'ai placé le code dans Worksheet et j'ai copié mes macros dans différents endroits sans succès.
Je précise que la cellule sensée lancer les macros est renseignée via une liste déroulante et contient la formule suivante
=SI(INDEX(Liste;data!$B$26;1)="";"";INDEX(Liste;data!$B$26;1))
Je ne sais pas si mon problème vient de là ou si l'emplacement du code et des macros est en cause mais je tourne en rond depuis un bon moment et j'en appelle à vous afin de vous demander de l'aide afin de pouvoir résoudre ce problème.
( Je ne sais pas si c'est important mais j'utilise excel 2007)
Je remercie par avance tous ceux qui pourront m'apporter de l'aide.
Afin de lancer une macro à partir du contenu d'une cellule et comme mes connaissances en VBA sont très limitées, j'ai cherché sur le forum et j'ai trouvé ce qui semblait me convenir : si le contenu de la cellule C3 est OUI, la macro "macro_oui" est lancée et la "macro_non" si C3 = NON
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address = "$C$3" then
if target.value = "OUI" then call macro_oui
if target.value = "NON" then call macro_non
end if
end sub
J'ai donc essayé d'adapter cette macro à mes besoins :
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address = "$D$15" then
if target.value = "MODIFICATION" then call Déverrouillage_feuille
if target.value <> "MODIFICATION" then call Verrouillage_feuille
end if
end sub
Mais lorsque ma cellule D15 affiche MODIFICATION ma macro Déverouillage_feuille ne s'execute pas (la feuille ne se déverrouille pas) et lorsque ma feuille est déverrouillée, le fait que le contenu de D15 soit différent de MODIFICATION, ma macro Verrouillage_feuille (insertion d'une formule et verrouillage de la feuille) ne se lance pas.
Cependant je n'ai pas de message d'erreur ni de débogage (J'en suis d'ailleurs étonné)
Ces deux macros réalisées avec l'enregistreur de macros fonctionnent parfaitement lorsqu'elles sont lancées par la fonction executer mais pas moyen d'automatiser le lancement à partir du contenu de D15.
J'ai placé le code dans Worksheet et j'ai copié mes macros dans différents endroits sans succès.
Je précise que la cellule sensée lancer les macros est renseignée via une liste déroulante et contient la formule suivante
=SI(INDEX(Liste;data!$B$26;1)="";"";INDEX(Liste;data!$B$26;1))
Je ne sais pas si mon problème vient de là ou si l'emplacement du code et des macros est en cause mais je tourne en rond depuis un bon moment et j'en appelle à vous afin de vous demander de l'aide afin de pouvoir résoudre ce problème.
( Je ne sais pas si c'est important mais j'utilise excel 2007)
Je remercie par avance tous ceux qui pourront m'apporter de l'aide.