Problème avec un nom défini dans le gestionnaire de noms

Bonjour,

J'ai écrit la semaine dernière pour un problème de nom défini dans le Gestionnaire de noms et la façon de l'effacer avec le CLEARCONTENTS.

La réponse donnée fonctionne. Merci encore.

Par contre en continuant, j'ai du ajouter un menu déroulant avec des cellules fusionnées.

Lorsque je vérifie s'il y a eu un changement de sélection dans le menu déroulant (Voir macro Feuil1) je ne peut pas utiliser le nom du Gestionnaire de noms je dois continuer à utiliser la référence à la cellule. J'aimerais continuer à utiliser le nom du Gestionnaire de noms puisque si je déplace mon menu déroulant vers une autre cellule je dois changer mon code macro dans Feuil1.

J'inclus un fichier. Avez-vous une solution pour ce nouveau problème?

Merci.

Bonjour,

Peut-être ainsi (dans l'évènement "Change" de la feuille)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
'If Not Intersect(Target, Range("D4")) Is Nothing And Range("D4").Value <> "" Then recuperer_Nom    ' Fonctionne si nom défini D4
If Not Intersect(Target, Range("Nom")) Is Nothing And Range("Nom")(1) <> "" Then recuperer_Nom   'Ne fonctionne pas
End Sub

Peut-être?

Bonjour

En général

If Not Intersect(Target,[Nom]...

suffit

Re-,

Le problème (du moins celui que j'ai remarqué) provient de cette partie de code :

And Range("Nom").Value <> "" Then

Comme c'est un groupe de cellules, il faut indiquer l'item

Bonne soirée

RE

[Nom].cells(1,1) devrait fonctionner

Bonjour,

J'ai une erreur "Variable objet ou variable de bloc With non définie"

Je joins le fichier.

RE

 Sub Effacer_Nom()

    [Nom].Cells.ClearContents

 End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [Nom]) Is Nothing Then Exit Sub
    If [Nom].Cells(1, 1).Value <> "" Then recuperer_Nom
End Sub

Merci pour vos réponses cela fonctionne. J'aurais besoin d'explication sur le code suivant:

[Nom].Cells(1, 1).Value

J'aimerais savoir le .Cells(1,1).value correspond à quoi? Pourquoi donner cette position de cellule?

Et aussi

J'aimerais savoir aussi pourquoi quand je fais le code suivant après avoir défini Prenom comme nom dans le Gestionnaire de nom et qui est un fusionnement des cellules D6:H6 j'ai un code d'erreur Incompatibilité de type (voir fichier déjà fourni)

Sub recuperer_Nom()

Dim p As Long

If Range("Prenom") <> Empty Then p = 0
Range("Prenom").ClearContents
Range("Adresse").ClearContents

End Sub

Bonjour,

..... un fusionnement des cellules D6:H6 j'ai un code d'erreur Incompatibilité de type (voir fichier déjà fourni)

......
If Range("Prenom") <> Empty Then p = 0

.....

Parfois on se demande si nos réponses sont lues....

Bonne journée

RE à tous

Merci pour vos réponses cela fonctionne. J'aurais besoin d'explication sur le code suivant:

[Nom].Cells(1, 1).Value

J'aimerais savoir le .Cells(1,1).value correspond à quoi? Pourquoi donner cette position de cellule?

Et aussi

J'aimerais savoir aussi pourquoi quand je fais le code suivant après avoir défini Prenom comme nom dans le Gestionnaire de nom et qui est un fusionnement des cellules D6:H6 j'ai un code d'erreur Incompatibilité de type (voir fichier déjà fourni)

Sub recuperer_Nom()

Dim p As Long

If Range("Prenom") <> Empty Then p = 0
Range("Prenom").ClearContents
Range("Adresse").ClearContents

End Sub

Une cellule fusionnée est un range donc un range n'a pas de valeur : chaque cellule le composant en a une.

Comme c'est la première cellule du range qui contient la valeur d'une cellule fusionnée on doit donc préciser sa position.

Merci beaucoup pour vos réponses, cela fonctionne parfaitement.

Je suis très heureux et excusez-moi si parfois je suis dure de la feuille.

Merci et bonne journée,

Oiseau bleu

Rechercher des sujets similaires à "probleme nom defini gestionnaire noms"