OVH Cloud OVH Cloud

Liste et Worksheet_Change

8 réponses
Avatar
HD
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

8 réponses

Avatar
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
Avatar
HD
Je ne sais pas si ceci répond à tes besoins :


Merci MichDenis mais ton script n'affiche pas "Bonjour" à la modification...
--
@+
HD

Avatar
michdenis
seulement au moment de sélectionner une autre cellule.


Salutations!


"HD" a écrit dans le message de news:
Je ne sais pas si ceci répond à tes besoins :


Merci MichDenis mais ton script n'affiche pas "Bonjour" à la modification...
--
@+
HD

Avatar
HD
If Sel Is Nothing Then
Set Rg = ActiveCell
End If


J'ai un message d'erreur avec le mot "Sel"...
--
@+
HD

Avatar
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

Avatar
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
Avatar
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
Avatar
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