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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Modeste
Le #4584801
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)))

JB
Le #4584791
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"
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


Pierre
Le #4584781
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
LSteph
Le #4584771
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




Publicité
Poster une réponse
Anonyme