OVH Cloud OVH Cloud

Range multiple

2 réponses
Avatar
Nangoustine
Bonjour, j'ai la macro suivante qui me permet que dés que je clique sur une
cellule de la plage de cellule nommée "croix", une croix apparait dans
celle-ci.
Le problème est que ma plage à nommer contient beaucoup de plages de
cellules différentes, et excel ne veut pas me prendre pas toutes les plages
en compte dans insertion>nom>définir.

Pourriez vous m'aider à modifier ce code vba pour qu'il prenne en compte
plusieurs nom de plages, du style "Set isect = Intersect(Target,
Range("Croix", "b", "c", "d"))"

Le code en question:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Intersect(Target, Range("Croix"))
If isect Is Nothing Then Exit Sub
If Target = "X" Then
Target = ""
Else
Target = "X"
End If
End Sub

Merci de votre aide
--
Nangoustine

2 réponses

Avatar
MsNews
Bonjour Nangoustine,

Une plage nommée ne peut contenir une référence de plus de 255 caractères.

Cependant, rien ne t'empêche d'avoir recours à plus d'une plage nommée pour lister les adresses de toutes les cellules
concernées par la problématique.

et tu modifies ton code ce cette manière :
Croix et Croix1 sont 2 plages nommées.
Tu peux en ajouter une troisième si besoin ....

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Intersect(Target, Union(Range("Croix"),Range("Croix1")))
If isect Is Nothing Then Exit Sub


End sub


Salutations!



"Nangoustine" a écrit dans le message de news:

Bonjour, j'ai la macro suivante qui me permet que dés que je clique sur une
cellule de la plage de cellule nommée "croix", une croix apparait dans
celle-ci.
Le problème est que ma plage à nommer contient beaucoup de plages de
cellules différentes, et excel ne veut pas me prendre pas toutes les plages
en compte dans insertion>nom>définir.

Pourriez vous m'aider à modifier ce code vba pour qu'il prenne en compte
plusieurs nom de plages, du style "Set isect = Intersect(Target,
Range("Croix", "b", "c", "d"))"

Le code en question:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Intersect(Target, Range("Croix"))
If isect Is Nothing Then Exit Sub
If Target = "X" Then
Target = ""
Else
Target = "X"
End If
End Sub

Merci de votre aide
--
Nangoustine
Avatar
Nangoustine
Super, merci MsNews!
C'est exactement ce que je cherchais à faire.

Nangoustine

------------------------------------------------------------------------------------------------



Bonjour Nangoustine,

Une plage nommée ne peut contenir une référence de plus de 255 caractères.

Cependant, rien ne t'empêche d'avoir recours à plus d'une plage nommée pour lister les adresses de toutes les cellules
concernées par la problématique.

et tu modifies ton code ce cette manière :
Croix et Croix1 sont 2 plages nommées.
Tu peux en ajouter une troisième si besoin ....

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Intersect(Target, Union(Range("Croix"),Range("Croix1")))
If isect Is Nothing Then Exit Sub


End sub


Salutations!



"Nangoustine" a écrit dans le message de news:

Bonjour, j'ai la macro suivante qui me permet que dés que je clique sur une
cellule de la plage de cellule nommée "croix", une croix apparait dans
celle-ci.
Le problème est que ma plage à nommer contient beaucoup de plages de
cellules différentes, et excel ne veut pas me prendre pas toutes les plages
en compte dans insertion>nom>définir.

Pourriez vous m'aider à modifier ce code vba pour qu'il prenne en compte
plusieurs nom de plages, du style "Set isect = Intersect(Target,
Range("Croix", "b", "c", "d"))"

Le code en question:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Intersect(Target, Range("Croix"))
If isect Is Nothing Then Exit Sub
If Target = "X" Then
Target = ""
Else
Target = "X"
End If
End Sub

Merci de votre aide
--
Nangoustine