Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
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

4 réponses

Avatar
Pierre Fauconnier
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" a écrit dans le
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




Avatar
Pascal Engelmajer
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" a écrit dans le
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




Avatar
marc.dufresne
merci c'est ce qui me conviens parfaitement

"Pierre Fauconnier" a écrit dans le
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" a écrit dans le
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








Avatar
maverick7
Le samedi 08 Mai 2004 à 20:08 par 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
Bonjour
J'ai créé un fichier excel pour un cahier
Dans ce cahier tout est figé par un mdp.
Les utilisateurs peuvent seulement rentrer du texte dans certaines zone.
Il y a un en-tête de 10 lignes que les utilisateurs n'ont pas le droit de modifier
J'aimerais autoriser à écrire en rouge une ligne du texte.
Je n'ai pas trouvé la possibilité de laisser la mise en forme à disposition (sauf en laissant la modification de format de cellule activé. Cette solution ne me convient pas car les utilisateurs pourront modifier toutes les cellules même celles qu'ils n'ont pas le droit de modifier (en-tête))
Donc j'ai trouvé la solution suivant créer un bouton qui mettra le texte en rouge.
Cette solution ne convient bien mais les utilisateurs pourront modifier l'en-tête et la mettre en rouge.
Macro pour le texte en rouge
Sheets("Feuille de quart").Unprotect Password:="a"
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
Sheets("Feuille de quart").Protect Password:="a"
La fonction fonctionne bien le texte dans la case sélectionnée passe en rouge
J'aimerais rajouter la fonction If ou autre pour dire que la fonction de changer de couleur est autorisée si la sélection est dans la zone D17 à L50
Merci d'avance :)
J'espère avoir été claire :)