savoir si une cellule sélectionnée appartient à une zone de cellule

Le
marc.dufresne
bonsoir
comment faire savoir si une cellule sélectionnée appartient à une zone de
cellule non contigue déterminée??
j'ai essayé dans "Private Sub Worksheet_Change(ByVal Target As Range)" if
target.adress = $C$3. mais là je suis obligé de nommé toutes les cellules
modifiables!
je vous remercie pour vos idées
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Fauconnier
Le #1414011
Bonsoir

Dans le worksheet_selectionchange, tu mets ceci

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a1:a10,c4:D25")) Is Nothing Then _
MsgBox "La cellule appartient à la plage A1:A10;C4:D25"
If Not Intersect(Target, [maplage]) Is Nothing Then _
MsgBox "La cellule appartient à la plage nommée ""maPlage"""
End Sub

Le premier if teste sur une plage que tu développe in extenso, le second
teste la cellule par rapport à une plage nommée


--
Pierre Fauconnier ()
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"marc.dufresne" message de news:409d21b1$0$20746$
bonsoir
comment faire savoir si une cellule sélectionnée appartient à une zone de
cellule non contigue déterminée??
j'ai essayé dans "Private Sub Worksheet_Change(ByVal Target As Range)" if
target.adress = $C$3.... mais là je suis obligé de nommé toutes les
cellules

modifiables!
je vous remercie pour vos idées




Pascal Engelmajer
Le #1392617
Salut,
deux petites fonctions :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox estDansZoneNommee(Target)
MsgBox estDansLaZoneNommee(Target)
End Sub
Function estDansZoneNommee(cell As Range) As Boolean
Dim pl As Range
estDansZoneNommee = False
For Each nom In Application.Names
With nom
Set pl = Nothing
On Error Resume Next
Set pl = Range(.Name)
On Error GoTo 0
If InStr(.Name, "_FilterDatabase") Or InStr(.Name, "Print_Area")
Then
'rien pour la zone de filtre et la zone d'impression
Else
If Not pl Is Nothing Then
If Not Intersect(pl, cell) Is Nothing Then
estDansZoneNommee = True
Exit Function
End If
End If
End If
End With
Next nom
End Function
Function estDansLaZoneNommee(cell As Range) As String
Dim pl As Range
estDansLaZoneNommee = "dans aucune zone nommée"
For Each nom In Application.Names
With nom
Set pl = Nothing
On Error Resume Next
Set pl = Range(.Name)
On Error GoTo 0
If Not pl Is Nothing Then
If InStr(.Name, "_FilterDatabase") Or InStr(.Name,
"Print_Area") Then
Else
If Not Intersect(pl, cell) Is Nothing Then
estDansLaZoneNommee = .Name
Exit Function
End If
End If
End If
End With
Next nom
End Function



--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"marc.dufresne" message de news: 409d21b1$0$20746$
bonsoir
comment faire savoir si une cellule sélectionnée appartient à une zone de
cellule non contigue déterminée??
j'ai essayé dans "Private Sub Worksheet_Change(ByVal Target As Range)" if
target.adress = $C$3.... mais là je suis obligé de nommé toutes les
cellules

modifiables!
je vous remercie pour vos idées




marc.dufresne
Le #1406056
merci c'est ce qui me conviens parfaitement

"Pierre Fauconnier" message de news: ##
Bonsoir

Dans le worksheet_selectionchange, tu mets ceci

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a1:a10,c4:D25")) Is Nothing Then _
MsgBox "La cellule appartient à la plage A1:A10;C4:D25"
If Not Intersect(Target, [maplage]) Is Nothing Then _
MsgBox "La cellule appartient à la plage nommée ""maPlage"""
End Sub

Le premier if teste sur une plage que tu développe in extenso, le second
teste la cellule par rapport à une plage nommée


--
Pierre Fauconnier ()
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"marc.dufresne" message de news:409d21b1$0$20746$
bonsoir
comment faire savoir si une cellule sélectionnée appartient à une zone
de


cellule non contigue déterminée??
j'ai essayé dans "Private Sub Worksheet_Change(ByVal Target As Range)"
if


target.adress = $C$3.... mais là je suis obligé de nommé toutes les
cellules

modifiables!
je vous remercie pour vos idées








Publicité
Poster une réponse
Anonyme