J'ai une cellule dont la valeur se sélectionne par une liste
(Données/Validation/Liste). Lorsque la valeur est modifié je voudrais qu'une
action soit réalisée OR pour Excel la modification de la valeur d'une
cellule par le biais d'une liste n'est pas pris en compte dans
Worksheet_Change...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour HD,
Je ne sais pas si ceci répond à tes besoins :
Dans le code de la feuille, copie ce qui suit : Donne à tes cellules cible(validation) un "Nom" : LaPlage
Si il y a modification de la valeur d'une des cellules de "LaPlage", dès que tu sélectionneras une autre cellule, la macro se déclenchera.
'Déclaration Variable dans le haut du module feuille. Dim Rg As Range '-------------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sel Is Nothing Then Set Rg = ActiveCell End If
If Not Intersect(Target, Range("LaPlage")) Is Nothing Then If Target.Value <> Rg.Value Then MsgBox "Bonjour" 'appel de ta macro End If End If Set Sel = ActiveCell
End Sub '--------------------------------
Salutations!
"HD" a écrit dans le message de news:% Bonjour,
J'ai une cellule dont la valeur se sélectionne par une liste (Données/Validation/Liste). Lorsque la valeur est modifié je voudrais qu'une action soit réalisée OR pour Excel la modification de la valeur d'une cellule par le biais d'une liste n'est pas pris en compte dans Worksheet_Change...
Merci d'avance pour votre aide. -- @+ HD
Bonjour HD,
Je ne sais pas si ceci répond à tes besoins :
Dans le code de la feuille, copie ce qui suit :
Donne à tes cellules cible(validation) un "Nom" : LaPlage
Si il y a modification de la valeur d'une des cellules de "LaPlage", dès que tu sélectionneras une autre cellule, la
macro se déclenchera.
'Déclaration Variable dans le haut du module feuille.
Dim Rg As Range
'--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sel Is Nothing Then
Set Rg = ActiveCell
End If
If Not Intersect(Target, Range("LaPlage")) Is Nothing Then
If Target.Value <> Rg.Value Then
MsgBox "Bonjour"
'appel de ta macro
End If
End If
Set Sel = ActiveCell
End Sub
'--------------------------------
Salutations!
"HD" <hd@anti.spam.fr> a écrit dans le message de news:%23iIqUlH9DHA.2480@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'ai une cellule dont la valeur se sélectionne par une liste
(Données/Validation/Liste). Lorsque la valeur est modifié je voudrais qu'une
action soit réalisée OR pour Excel la modification de la valeur d'une
cellule par le biais d'une liste n'est pas pris en compte dans
Worksheet_Change...
Dans le code de la feuille, copie ce qui suit : Donne à tes cellules cible(validation) un "Nom" : LaPlage
Si il y a modification de la valeur d'une des cellules de "LaPlage", dès que tu sélectionneras une autre cellule, la macro se déclenchera.
'Déclaration Variable dans le haut du module feuille. Dim Rg As Range '-------------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sel Is Nothing Then Set Rg = ActiveCell End If
If Not Intersect(Target, Range("LaPlage")) Is Nothing Then If Target.Value <> Rg.Value Then MsgBox "Bonjour" 'appel de ta macro End If End If Set Sel = ActiveCell
End Sub '--------------------------------
Salutations!
"HD" a écrit dans le message de news:% Bonjour,
J'ai une cellule dont la valeur se sélectionne par une liste (Données/Validation/Liste). Lorsque la valeur est modifié je voudrais qu'une action soit réalisée OR pour Excel la modification de la valeur d'une cellule par le biais d'une liste n'est pas pris en compte dans Worksheet_Change...
Merci d'avance pour votre aide. -- @+ HD
HD
Je ne sais pas si ceci répond à tes besoins :
Merci MichDenis mais ton script n'affiche pas "Bonjour" à la modification... -- @+ HD
Je ne sais pas si ceci répond à tes besoins :
Merci MichDenis mais ton script n'affiche pas "Bonjour" à la modification...
--
@+
HD
J'ai un message d'erreur avec le mot "Sel"... -- @+ HD
michdenis
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rg Is Nothing Then Set Rg = ActiveCell End If
If Not Intersect(Target, Range("LaPlage")) Is Nothing Then If Target.Value <> Rg.Value Then MsgBox "Bonjour" 'appel de ta macro End If End If Set Rg = ActiveCell
End Sub
"HD" a écrit dans le message de news:
If Sel Is Nothing Then Set Rg = ActiveCell End If
J'ai un message d'erreur avec le mot "Sel"... -- @+ HD
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rg Is Nothing Then
Set Rg = ActiveCell
End If
If Not Intersect(Target, Range("LaPlage")) Is Nothing Then
If Target.Value <> Rg.Value Then
MsgBox "Bonjour"
'appel de ta macro
End If
End If
Set Rg = ActiveCell
End Sub
"HD" <hd@anti.spam.fr> a écrit dans le message de news:OTHWKaK9DHA.2644@TK2MSFTNGP11.phx.gbl...
If Sel Is Nothing Then
Set Rg = ActiveCell
End If
J'ai un message d'erreur avec le mot "Sel"...
--
@+
HD
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Rg Is Nothing Then Set Rg = ActiveCell End If
If Not Intersect(Target, Range("LaPlage")) Is Nothing Then If Target.Value <> Rg.Value Then MsgBox "Bonjour" 'appel de ta macro End If End If Set Rg = ActiveCell
End Sub
"HD" a écrit dans le message de news:
If Sel Is Nothing Then Set Rg = ActiveCell End If
J'ai un message d'erreur avec le mot "Sel"... -- @+ HD
HD
La macro ne me donne un message "Bonjour" que si je quitte ma cellule pour y revenir après... alors que je voudrais pouvoir avoir l'exécution de la macro après modification de cette cellule (par la liste de validation).
Je pensais que ce script fonctionnerait mais ce n'est pas le cas... Pourtant Rg n'est réinitialisé qu'à la fin de la macro et malgrès cela sa valeur est modifié au tout début SANS passé par la condition 'If Rg Is Nothing Then' (j'ai fait le test...).
Dim Rg As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Rg Is Nothing Then Set Rg = Range("LaPlage") End If
If Range("LaPlage").Value <> Rg.Value Then MsgBox "Bonjour" End If Set Rg = Range("LaPlage")
End Sub
-- @+ HD
La macro ne me donne un message "Bonjour" que si je quitte ma cellule pour y
revenir après... alors que je voudrais pouvoir avoir l'exécution de la macro
après modification de cette cellule (par la liste de validation).
Je pensais que ce script fonctionnerait mais ce n'est pas le cas... Pourtant
Rg n'est réinitialisé qu'à la fin de la macro et malgrès cela sa valeur est
modifié au tout début SANS passé par la condition 'If Rg Is Nothing Then'
(j'ai fait le test...).
Dim Rg As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Rg Is Nothing Then
Set Rg = Range("LaPlage")
End If
If Range("LaPlage").Value <> Rg.Value Then
MsgBox "Bonjour"
End If
Set Rg = Range("LaPlage")
La macro ne me donne un message "Bonjour" que si je quitte ma cellule pour y revenir après... alors que je voudrais pouvoir avoir l'exécution de la macro après modification de cette cellule (par la liste de validation).
Je pensais que ce script fonctionnerait mais ce n'est pas le cas... Pourtant Rg n'est réinitialisé qu'à la fin de la macro et malgrès cela sa valeur est modifié au tout début SANS passé par la condition 'If Rg Is Nothing Then' (j'ai fait le test...).
Dim Rg As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Rg Is Nothing Then Set Rg = Range("LaPlage") End If
If Range("LaPlage").Value <> Rg.Value Then MsgBox "Bonjour" End If Set Rg = Range("LaPlage")
End Sub
-- @+ HD
AV
Le changement du contenu d'une cellule par une liste de validation ne déclenche pas l'évènement "Worksheet_Change" (vieux problème XL !) Exemple pour contourner : En A1 de "Feuil1" ta liste de validation En A1 de "Feuil2" (à éventuellemnt masquer) : þuil1!A1 PS : pour plus de surété, tu ne mets que ça dans "Feuil2" Dans le module de "Feuil2" :
Private Sub Worksheet_Calculate() maMacro 'maMacro est le nom de la macro 'contenant les instructions que tu 'souhaites voir exécuter au changement ' de A1 de "Feuil1" End Sub
AV
Le changement du contenu d'une cellule par une liste de validation ne déclenche
pas l'évènement "Worksheet_Change" (vieux problème XL !)
Exemple pour contourner :
En A1 de "Feuil1" ta liste de validation
En A1 de "Feuil2" (à éventuellemnt masquer) : þuil1!A1
PS : pour plus de surété, tu ne mets que ça dans "Feuil2"
Dans le module de "Feuil2" :
Private Sub Worksheet_Calculate()
maMacro
'maMacro est le nom de la macro
'contenant les instructions que tu
'souhaites voir exécuter au changement
' de A1 de "Feuil1"
End Sub
Le changement du contenu d'une cellule par une liste de validation ne déclenche pas l'évènement "Worksheet_Change" (vieux problème XL !) Exemple pour contourner : En A1 de "Feuil1" ta liste de validation En A1 de "Feuil2" (à éventuellemnt masquer) : þuil1!A1 PS : pour plus de surété, tu ne mets que ça dans "Feuil2" Dans le module de "Feuil2" :
Private Sub Worksheet_Calculate() maMacro 'maMacro est le nom de la macro 'contenant les instructions que tu 'souhaites voir exécuter au changement ' de A1 de "Feuil1" End Sub
AV
HD
Exemple pour contourner :
Effectivement ton astuce marche pour contourner le problème... Mais (vous allez finir par me trouver 'chiant') mon problème est sur un classeur assez lourd qui comporte des liens OLE avec logiciel de compta et qui donc a l'option de Calcul qui n'est pas en 'Automatique' mais qui est sur 'Ordre'... ça se complique...
-- @+ HD
Exemple pour contourner :
Effectivement ton astuce marche pour contourner le problème... Mais (vous
allez finir par me trouver 'chiant') mon problème est sur un classeur assez
lourd qui comporte des liens OLE avec logiciel de compta et qui donc a
l'option de Calcul qui n'est pas en 'Automatique' mais qui est sur
'Ordre'... ça se complique...
Effectivement ton astuce marche pour contourner le problème... Mais (vous allez finir par me trouver 'chiant') mon problème est sur un classeur assez lourd qui comporte des liens OLE avec logiciel de compta et qui donc a l'option de Calcul qui n'est pas en 'Automatique' mais qui est sur 'Ordre'... ça se complique...