Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment écrire en VBA ce test ? If Target.Address est dans Zone1 then

4 réponses
Avatar
Pierre
Bonjour,

J'ai défini une zone que j'ai nommée Zone1.

Je souhaiterai tester lors d'un évenement de type Worksheet_Change, si le
changement c'est produit dans la zone que j'ai défini comme Zone1.
Comment écrire en VBA ce test ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address est dans Zone1 then

Merci,

Tintin92

4 réponses

Avatar
Modeste
Bonsour® Pierre avec ferveur ;o))) vous nous disiez :

J'ai défini une zone que j'ai nommée Zone1.
Je souhaiterai tester lors d'un évenement de type Worksheet_Change, si le
changement c'est produit dans la zone que j'ai défini comme Zone1.
Comment écrire en VBA ce test ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

' -- on detecte en fait que l'intersection existe
' -- si l'intersection n'est pas "vide"
If Not Intersect(Target, Range("zone1")) Is Nothing Then
' -- ici l'action a effectuer
Else
' -- pas dans la zone
End If

End Sub

--
--
@+
;o)))

Avatar
JB
Zone nommée Zone1

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([Zone1], Target) Is Nothing Then
....
End If
End Sub

JB

On 17 juin, 20:28, "Pierre" wrote:
Bonjour,

J'ai défini une zone que j'ai nommée Zone1.

Je souhaiterai tester lors d'un évenement de type Worksheet_Change, si le
changement c'est produit dans la zone que j'ai défini comme Zone1.
Comment écrire en VBA ce test ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address est dans Zone1 then

Merci,

Tintin92


Avatar
Pierre
XL n'est pas simple.
J'ai essayé de simplifier vos réponses, par quelque chose du genre :
If Intersect(Target, Range("Zone1")) Then
mais alors ça ne fonctionne plus.

Merci de vos réponses et de leur rapidité, je suis bluffé.

Tintin92
Avatar
LSteph
Bonsoir,

Tu peux avoir besoin de traiter les cellules de la partie concernée
et gèrer le cas de saisies multiples ou de collage sur plusieurs cellules:
Il peut donc s'agir d'une plage comprenant une partie sur celle définie.
A cet égard il convient de définir le cas échéant, la plage à traiter.
Et prendre la précaution de désactiver les évennements pour éviter le
risque de boucle infernale si la macro remodifie elle même ces cellules.
Exemple:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect as Range, c as range
Set iSect= Intersect(Target, Range("Zone1"))
If Not isect Is Nothing Then
Application.enableeventsúlse
For each c in iSect.cells
' -- ici l'action a effectuer
next c
Application.enableevents=true
End If
end Sub

'LSteph


Bonjour,

J'ai défini une zone que j'ai nommée Zone1.

Je souhaiterai tester lors d'un évenement de type Worksheet_Change, si le
changement c'est produit dans la zone que j'ai défini comme Zone1.
Comment écrire en VBA ce test ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address est dans Zone1 then

Merci,

Tintin92