Comment écrire en VBA ce test ? If Target.Address est dans Zone1 then
4 réponses
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
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
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)))
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
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
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
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" <n...@spam.com> 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
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
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
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é.
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
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
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
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