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

Soucis avec Target.Address

10 réponses
Avatar
Emile63
Bonjour a tous,

Comment puis-je "r=E9cup=E9rer le "Nom" et non l'adresse d'une cellule
dans une proc. =E9v=E9nementielle..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom =3D Target.Address

.....
Je vous remercie d'avance pour votre aide,
Cordialement,
Emile

10 réponses

Avatar
FFO
Salut à toi

mets comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target

Celà devrait convenir
Dis moi !!!
Avatar
Pounet95
Bonjour,

Pour plus de sûreté, j'écrirais Target.Name
Suis pas certain que Target retourne le nom, mais à mon avis ce serait
plutôt la valeur ?

Pounet95

"FFO" a écrit dans le message de
news:
Salut à toi

mets comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target

Celà devrait convenir
Dis moi !!!



Avatar
michdenis
As-tu essayé quelque chose comme :


Private Sub Worksheet_Change(ByVal Target As Range)
For Each n In ThisWorkbook.Names
If Not Intersect(Range(n), Target) Is Nothing Then
MsgBox Target.Address & " est inclus dans " & _
"la plage ayant comme nom : " & Range(n).Name.Name & _
vbCrLf & " qui a comme étendue : " & Range(n).Address
End If
Next
End Sub




"Emile63" a écrit dans le message de groupe de discussion :

Bonjour a tous,

Comment puis-je "récupérer le "Nom" et non l'adresse d'une cellule
dans une proc. événementielle..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target.Address

.....
Je vous remercie d'avance pour votre aide,
Cordialement,
Emile
Avatar
Emile63
On 21 ene, 11:34, Emile63 wrote:
Bonjour a tous,

Comment puis-je "récupérer le "Nom" et non l'adresse d'une cellule
dans une proc. événementielle..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target.Address

.....
Je vous remercie d'avance pour votre aide,
Cordialement,
Emile



Merci a tous pour votre aide et vos solutions. ;-)

Celle qui a fonctionné (un mix. de l'ensemble) était la suivante:
MonNomCellule = Range(Target.Address).Name.Name


Très cordialement,
Emile
Avatar
Pounet95
........ euh, je crois que j'avais pas tout compris vu la solution :o(((((
Pounet95

"Emile63" a écrit dans le message de
news:
On 21 ene, 11:34, Emile63 wrote:
Bonjour a tous,

Comment puis-je "récupérer le "Nom" et non l'adresse d'une cellule
dans une proc. événementielle..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target.Address

.....
Je vous remercie d'avance pour votre aide,
Cordialement,
Emile



Merci a tous pour votre aide et vos solutions. ;-)

Celle qui a fonctionné (un mix. de l'ensemble) était la suivante:
MonNomCellule = Range(Target.Address).Name.Name


Très cordialement,
Emile
Avatar
Emile63
On 21 ene, 11:34, Emile63 wrote:
Bonjour a tous,

Comment puis-je "récupérer le "Nom" et non l'adresse d'une cellule
dans une proc. événementielle..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target.Address

.....


Re-bonjour a tous,

Heu.. J'ai encore des soucis... Avec ces Noms... Dans mes cellules..
Lorsque je modifie une cellule qui n'a pas de NOM, la procédure
événementielle se plante...
Je voudrais donc l'arrêter avec une petite condition [if], mais ça
marche pô.. :-(
--------------------------------------------------------------------------- ---------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
'
If (Range(Target.Address).Name.Name) Is Error Then End ' <-- ICI
MonNom = Range(Target.Address).Name.Name
'etc..
End Sub.
--------------------------------------------------------------------------- ---------

Si quelqu'un peut me mettre sur la voie ;-)
Je vous remercie d'avance pour votre aide,
Cordialement .
Emile
Avatar
michdenis
Tu sais maintenant pourquoi j'ai fait une boucle dans
le premier message que je t'ai envoyé sur ce fil !



"Emile63" a écrit dans le message de groupe de discussion :

On 21 ene, 11:34, Emile63 wrote:
Bonjour a tous,

Comment puis-je "récupérer le "Nom" et non l'adresse d'une cellule
dans une proc. événementielle..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target.Address

.....


Re-bonjour a tous,

Heu.. J'ai encore des soucis... Avec ces Noms... Dans mes cellules..
Lorsque je modifie une cellule qui n'a pas de NOM, la procédure
événementielle se plante...
Je voudrais donc l'arrêter avec une petite condition [if], mais ça
marche pô.. :-(
------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
'
If (Range(Target.Address).Name.Name) Is Error Then End ' <-- ICI
MonNom = Range(Target.Address).Name.Name
'etc..
End Sub.
------------------------------------------------------------------------------------

Si quelqu'un peut me mettre sur la voie ;-)
Je vous remercie d'avance pour votre aide,
Cordialement .
Emile
Avatar
FFO
Rebonjour à toi

Tu peux mettre ainsi :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
On Error Resume Next
MonNom = Range(Target.Address).Name.Name
If MonNom = "" Then
Exit Sub
End If
Code.....
End Sub

Celà devrait convenir
Dis moi !!!!
Avatar
Emile63
On 21 ene, 11:34, Emile63 wrote:
Bonjour a tous,

Comment puis-je "récupérer le "Nom" et non l'adresse d'une cellule
dans une proc. événementielle..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonNom As String
MonNom = Target.Address

.....
Je vous remercie d'avance pour votre aide,
Cordialement,
Emile



Bonjour a tous et merci pour votre aide et vos solutions.
Globalement si je place le "On Error resume next" au début, c'est
réglé avec un:
If MonNom = "" Then Exit Sub
Toutefois a des fin pédagogiques.. (Hi,hi,hi) je voudrais savoir s'il
existe une manière directe de traiter cette erreur.
Je veux dire, si j'enlève le : "On Error resume next" est ce que je
peux passer sans plantage avec un [if] de ce style?

If Range(Target.Address).Name.Name Is Empty Then End
If Range(Target.Address).Name.Name Is Null Then End
If Range(Target.Address).Name.Name Is Nothing Then End

Je ne comprends pas pourquoi il ne répond pas "VRAI" puisque [Range
(Target.Address).Name.Name] est vide..
Merci pour l'explication,
Cordialement,
Emile
Avatar
michdenis
Quand tu utilises ceci :
Range(Target.Address).Name.Name

Tu demandes à excel de te retourner la plage nommée (son nom)

Comment Excel peut-il évaluer ou qualifier quelque chose qui n'existe pas ?

Comme suggérer, c'est vrai que tu peux utiliser On error resume next
mais n'oublie de t'assurer que la suite de ta procédure fait du sens...
sinon prévoir une façon de mettre fin à l'exécution de la procédure.


Bonjour a tous et merci pour votre aide et vos solutions.
Globalement si je place le "On Error resume next" au début, c'est
réglé avec un:
If MonNom = "" Then Exit Sub
Toutefois a des fin pédagogiques.. (Hi,hi,hi) je voudrais savoir s'il
existe une manière directe de traiter cette erreur.
Je veux dire, si j'enlève le : "On Error resume next" est ce que je
peux passer sans plantage avec un [if] de ce style?

If Range(Target.Address).Name.Name Is Empty Then End
If Range(Target.Address).Name.Name Is Null Then End
If Range(Target.Address).Name.Name Is Nothing Then End

Je ne comprends pas pourquoi il ne répond pas "VRAI" puisque [Range
(Target.Address).Name.Name] est vide..
Merci pour l'explication,
Cordialement,
Emile