Worksheet_SelectionChange

Bonjour, J'ai un petit problème...

Je déclenche certaines actions à l'aide "Worksheet_SelectionChange" mais c'est lourd, et parfois inutile...

Je souhaiterais définir simplement une plage de cellules, et déclencher mes actions seulement lorsqu'une des cellules de cette plage est modifiée.

Je ne sais pas comment faire.... Help !

Merci

Bonjour

Quelque chose du style :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D1:D12,  E1:E12")) Is Nothing Then
La suite
End if
End Sub

Amicalement

Nad

Bonjour à tous, Salut Nad,

déclencher mes actions seulement lorsqu'une des cellules de cette plage est modifiée.

si c'est toi qui modifie les cellules, utilise plutôt "Change" que "SelectionChange"

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D1:D12,  E1:E12")) Is Nothing Then
        '--- La suite
    End If
End Sub

Bonne journée

Claude

Nad a écrit :

Bonjour

Quelque chose du style :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D1:D12,  E1:E12")) Is Nothing Then
La suite
End if
End Sub

Merci Nad, j'ai intégré ton code, mais mon souhait a un peu évolué depuis...

En fait, je surveille la dernière cellule vide d'une colonne, et je souhaite déclencher l'action uniquement lorsque le contenu de cette cellule est modifié. Et non pas lorsque cette cellule "prend le focus"..

Je ne sais pas si je suis très clair...

Ci joint un fichier ...

merci

224action.zip (7.39 Ko)

Bonjour,

Comme je te vois connecté..

je souhaite déclencher l'action uniquement lorsque le contenu de cette cellule est modifié.

essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ligne As Integer
ligne = Range("A65536").End(xlUp).Row
If Not Application.Intersect(Target, Cells(ligne, 1)) Is Nothing Then
'ton action
End If
End Sub

!!

Amicalement

Dan a écrit :

Bonjour,

Comme je te vois connecté..

essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ligne As Integer
ligne = Range("A65536").End(xlUp).Row
If Not Application.Intersect(Target, Cells(ligne, 1)) Is Nothing Then
'ton action
End If
End Sub

Merci de t'interesser à mon cas,

mais à part grosses erreur de ma part, ce code déclenche l'action lorsque la cellule cible est activée et non lorsqu'elle est modifiée....

Regarde le fichier joint de mon post précédent.

re,

Voir mon message précédent

Private Sub Worksheet_Change(ByVal Target As Range)

et non

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Claude

re,

mais à part grosses erreur de ma part, ce code déclenche l'action lorsque la cellule cible est activée et non lorsqu'elle est modifiée....

Faux ! sauf si tu as laissé ton ancien code "SELECTIONCHANGE" dans la feuille évidemment.

Le code déclenche l'action si tu modifies une cellule de la colonne A.

Claude te le fait remarquer aussi.

Dan a écrit :

mais à part grosses erreur de ma part, ce code déclenche l'action lorsque la cellule cible est activée et non lorsqu'elle est modifiée....

Faux ! sauf si tu as laissé ton ancien code "SELECTIONCHANGE" dans la feuille évidemment.

Le code déclenche l'action si tu modifies une cellule de la colonne A.

Exact, grosse erreur de ma part

Mais ça ne fonctionnepas quand même...

En reprenant ce que vous m'avez montré, pourquoi la cellule E5 n'affiche t elle jamais "1" ?

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1:A12")) Is Nothing Then
    Cells(5, 5).Value = 1
    Else
    Cells(5, 5).Value = 22
   End If
End Sub

PS: comment faites vous pour afficher le code encadré et en couleur dans vos messages ??

BastLat a écrit :

En reprenant ce que vous m'avez montré, pourquoi la cellule E5 n'affiche t elle jamais "1" ?

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A1:A12")) Is Nothing Then

Cells(5, 5).Value = 1

Else

Cells(5, 5).Value = 22

End If

End Sub

Parce-que la Cells(5,5) = E5 et E5 ne fait pas partie de la plage autorisée A1:A12

BastLat a écrit :

PS: comment faites vous pour afficher le code encadré et en couleur dans vos messages ??

Tu sélectionnes ton code et tu cliques sur CODE

Nad

C'est OK. Merci de votre aide !

Rechercher des sujets similaires à "worksheet selectionchange"