OVH Cloud OVH Cloud

Intersect(??????)

13 réponses
Avatar
ABED HADDOU
Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur dans la
cellule M7 et je valide, mon premier macro s’exécute, le deuxième sera
appeler par mon premier quand je valide une cellule de la colonne « C » de
C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing Then
macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect ? Ou
????
merci d’avance pour votre aide.

10 réponses

1 2
Avatar
anonymousA
Bonjour,

Intersect n'accepte que 2 paramètres tout simplement.

A+

Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur dans la
cellule M7 et je valide, mon premier macro s’exécute, le deuxième sera
appeler par mon premier quand je valide une cellule de la colonne « C » de
C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing Then
macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect ? Ou
????
merci d’avance pour votre aide.



Avatar
anonymousA
Fais un union des Ranges que tu veux tester avant d'utiliser Intersect.

Bonjour,

Intersect n'accepte que 2 paramètres tout simplement.

A+

Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur
dans la cellule M7 et je valide, mon premier macro s’exécute, le
deuxième sera appeler par mon premier quand je valide une cellule de
la colonne « C » de C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing
Then macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect
? Ou ????
merci d’avance pour votre aide.





Avatar
ABED HADDOU
merci anonymousA pour la réponse,
j'ai essayé avant avec union et aussi ça marche pas pourquoi ?
Set rng = Union(Range("M7"), Range("C20:C36"))

If not Intersect(Target, rng) Is Nothing Then

merci
Abed_H

"anonymousA" wrote:

Fais un union des Ranges que tu veux tester avant d'utiliser Intersect.

Bonjour,

Intersect n'accepte que 2 paramètres tout simplement.

A+

Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur
dans la cellule M7 et je valide, mon premier macro s’exécute, le
deuxième sera appeler par mon premier quand je valide une cellule de
la colonne « C » de C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing
Then macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect
? Ou ????
merci d’avance pour votre aide.








Avatar
JLuc
*Bonjour ABED HADDOU*,


Set rng = Union(Range("M7"), Range("C20:C36"))

If not Intersect(Target, rng) Is Nothing Then
Ce serait pas :

If not Intersect(Target, Range(rng)) Is Nothing Then

?

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
anonymousA
Je ne vois pas pourquoi ca ne marcherait pas.
En fait le Union crée une plage de cellules non contigues ( ici les
cellules M7 et la plage de cellules C20 à C36).
Ensuite Intersect teste si Target, c'est à dire la cellule qui a changé
appartient à la plage de cellules non contigues. Si oui alors on fait
quelque chose, sinon on ne fait rien.
Voilà le principe.

A+


merci anonymousA pour la réponse,
j'ai essayé avant avec union et aussi ça marche pas pourquoi ?
Set rng = Union(Range("M7"), Range("C20:C36"))

If not Intersect(Target, rng) Is Nothing Then

merci
Abed_H

"anonymousA" wrote:

Fais un union des Ranges que tu veux tester avant d'utiliser Intersect.

Bonjour,

Intersect n'accepte que 2 paramètres tout simplement.

A+

Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur
dans la cellule M7 et je valide, mon premier macro s’exécute, le
deuxième sera appeler par mon premier quand je valide une cellule de
la colonne « C » de C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing
Then macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect
? Ou ????
merci d’avance pour votre aide.









Avatar
ABED HADDOU
Merci "JLuc", et quelle est la solution d'aprés toi ?
comment faire pour exécuter mes deux macros à l'evenement change ?
Abed_H


"JLuc" wrote:

*Bonjour ABED HADDOU*,


Set rng = Union(Range("M7"), Range("C20:C36"))

If not Intersect(Target, rng) Is Nothing Then
Ce serait pas :

If not Intersect(Target, Range(rng)) Is Nothing Then

?

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Avatar
ABED HADDOU
qunad j'utilise Intersect(Target,Range(Rng))
le message suivant apparaît
la méthode Range de l'objet Worksheet a échoué

Abed_H

"anonymousA" wrote:

Je ne vois pas pourquoi ca ne marcherait pas.
En fait le Union crée une plage de cellules non contigues ( ici les
cellules M7 et la plage de cellules C20 à C36).
Ensuite Intersect teste si Target, c'est à dire la cellule qui a changé
appartient à la plage de cellules non contigues. Si oui alors on fait
quelque chose, sinon on ne fait rien.
Voilà le principe.

A+


merci anonymousA pour la réponse,
j'ai essayé avant avec union et aussi ça marche pas pourquoi ?
Set rng = Union(Range("M7"), Range("C20:C36"))

If not Intersect(Target, rng) Is Nothing Then

merci
Abed_H

"anonymousA" wrote:

Fais un union des Ranges que tu veux tester avant d'utiliser Intersect.

Bonjour,

Intersect n'accepte que 2 paramètres tout simplement.

A+

Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur
dans la cellule M7 et je valide, mon premier macro s’exécute, le
deuxième sera appeler par mon premier quand je valide une cellule de
la colonne « C » de C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing
Then macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect
? Ou ????
merci d’avance pour votre aide.












Avatar
ABED HADDOU
Avant j’ai fonctionné mes macros de cette façon

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(“$M$7”) Is Nothing Then
Macro1
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("K20:K36")) Is Nothing Then Exit Sub
Macro 2
End Sub

sa marchais bien mais je voudrais les exécuté a l’évènement change()
Y a il d’autre solution s.v.p

Merci une autre fois
Abd_H


"anonymousA" wrote:

Je ne vois pas pourquoi ca ne marcherait pas.
En fait le Union crée une plage de cellules non contigues ( ici les
cellules M7 et la plage de cellules C20 à C36).
Ensuite Intersect teste si Target, c'est à dire la cellule qui a changé
appartient à la plage de cellules non contigues. Si oui alors on fait
quelque chose, sinon on ne fait rien.
Voilà le principe.

A+


merci anonymousA pour la réponse,
j'ai essayé avant avec union et aussi ça marche pas pourquoi ?
Set rng = Union(Range("M7"), Range("C20:C36"))

If not Intersect(Target, rng) Is Nothing Then

merci
Abed_H

"anonymousA" wrote:

Fais un union des Ranges que tu veux tester avant d'utiliser Intersect.

Bonjour,

Intersect n'accepte que 2 paramètres tout simplement.

A+

Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur
dans la cellule M7 et je valide, mon premier macro s’exécute, le
deuxième sera appeler par mon premier quand je valide une cellule de
la colonne « C » de C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing
Then macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect
? Ou ????
merci d’avance pour votre aide.












Avatar
JLuc
*Bonjour ABED HADDOU*,
Essaie comme ca, ca marche :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("M7"), Range("C20:C36"))) Is
Nothing Then
MsgBox "Ca passe"
End If
End Sub


Avant j’ai fonctionné mes macros de cette façon

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(“$M$7”) Is Nothing Then
Macro1
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("K20:K36")) Is Nothing Then Exit Sub
Macro 2
End Sub

sa marchais bien mais je voudrais les exécuté a l’évènement change()
Y a il d’autre solution s.v.p

Merci une autre fois
Abd_H


"anonymousA" wrote:

Je ne vois pas pourquoi ca ne marcherait pas.
En fait le Union crée une plage de cellules non contigues ( ici les
cellules M7 et la plage de cellules C20 à C36).
Ensuite Intersect teste si Target, c'est à dire la cellule qui a changé
appartient à la plage de cellules non contigues. Si oui alors on fait
quelque chose, sinon on ne fait rien.
Voilà le principe.

A+


merci anonymousA pour la réponse,
j'ai essayé avant avec union et aussi ça marche pas pourquoi ?
Set rng = Union(Range("M7"), Range("C20:C36"))

If not Intersect(Target, rng) Is Nothing Then

merci
Abed_H

"anonymousA" wrote:

Fais un union des Ranges que tu veux tester avant d'utiliser Intersect.

Bonjour,

Intersect n'accepte que 2 paramètres tout simplement.

A+

Bonjour,
J’ai deux macros à exécuter, je voudrais quand je saisi une valeur
dans la cellule M7 et je valide, mon premier macro s’exécute, le
deuxième sera appeler par mon premier quand je valide une cellule de
la colonne « C » de C20 à C36 ,j’ai essayé avec,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M7"), Range("C20:C36")) Is Nothing
Then macro1
endif
End Sub
mais ça marche pas peut être j’ai mal utilisé la syntaxe de Intersect
? Ou ????
merci d’avance pour votre aide.









--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Avatar
lSteph
Bonjour,
"ABED HADDOU" a écrit

qunad j'utilise Intersect(Target,Range(Rng))..
la méthode Range de l'objet Worksheet a échoué
??? Si tu utilises Range(....) il faut y mettre une adresse et non l'objet.

Dim Rng as string
Rng=Union(Range("m7"),Range("K20:K36")).Address

Sinon, ce que donné par JLuc plus bas et Anonymous plus haut ,
fonctionne fort bien et sans avoir à définir de variable.

autre possibilité :

If Not Intersect(Target, Union([m7], [k20:k26])) Is Nothing Then

ou bien même

If target.address=[m7].address or not intersect (target, [k20:k26]) is
nothing then

Cordialement.

lSteph

"ABED HADDOU" a écrit dans le message
de news:

1 2