Bonjour
Je recherche une macro qui permette de savoir si une cellule porte déjà un nom
J’ai trouvé cette macro sur ne Net
Mais elle n’est parfaite :
1) Si il existe un seul nom qui renvoi à rien, elle plante obligatoirement
Exemple : 1 ligne supprimée qui comportait une cellule nommée et dont le nom serait resté dans le gestionnaire des noms.
2) Si il existe un seul nom qui renvoi à des cellules non contigües,
Elle plante également irrémédiablement.
3) Il y a d’autre cas, ou elle plante également (Dans des fichiers comportant un grand nombre de noms, sans que je sois parvenu à trouver la cause exacte ??
4) Si une cellule qui comporte deux noms, voir plus
Elle donnera seulement le dernier nom dans l’ordre alphanumérique
5) Une cellule comportant un nom, elle-même dans un groupe de cellules nommées
Elle donnera seulement le nom du groupe de cellules
Exemple : Cellule A1 nommée « Case »
Cellules A1 : D5 nommées « Zone »
A1 renvoie « Zone »
Si quelqu’un connait ou a déjà programmé une autre macro sans ces inconvénients …
Merci d’avance
Je recherche une macro qui permette de savoir si une cellule porte déjà un nom
J’ai trouvé cette macro sur ne Net
Mais elle n’est parfaite :
1) Si il existe un seul nom qui renvoi à rien, elle plante obligatoirement
Exemple : 1 ligne supprimée qui comportait une cellule nommée et dont le nom serait resté dans le gestionnaire des noms.
2) Si il existe un seul nom qui renvoi à des cellules non contigües,
Elle plante également irrémédiablement.
3) Il y a d’autre cas, ou elle plante également (Dans des fichiers comportant un grand nombre de noms, sans que je sois parvenu à trouver la cause exacte ??
4) Si une cellule qui comporte deux noms, voir plus
Elle donnera seulement le dernier nom dans l’ordre alphanumérique
5) Une cellule comportant un nom, elle-même dans un groupe de cellules nommées
Elle donnera seulement le nom du groupe de cellules
Exemple : Cellule A1 nommée « Case »
Cellules A1 : D5 nommées « Zone »
A1 renvoie « Zone »
Si quelqu’un connait ou a déjà programmé une autre macro sans ces inconvénients …
Merci d’avance
Code:
Sub Nom_de_Cellule()
'déclarations
Dim nms As Names
Dim Ok As Boolean
Dim i As Integer
Dim Indice As Integer
Dim Nom_Cell As String
'initialisations
Ok = False
Set nms = ActiveWorkbook.Names
'teste si la cellule active correspond à un des noms
For i = 1 To nms.Count
'If nms(i).RefersToRange.Address = ActiveCell.Address Then Ok = True
If Not Intersect(ActiveCell, nms(i).RefersToRange) Is Nothing Then
Ok = True
Indice = i
End If
Next
'si oui
If Ok = True Then
Nom_Cell = nms(Indice).Name
MsgBox Nom_Cell
'sinon
Else
MsgBox "Sans nom défini"
End If
End Sub