je travail sur un classeur avec énormément de noms qui ont été définis (8143 exactement), dont la plus part sont obsolètes
J'aurai besoin de nettoyer cette liste. malheureusement les filtres du gestionnaires de noms sont limités.
A défaut de pouvoir / savoir filtrer directement dans le gestionnaire, j'ai tenter d'exporter la liste des noms dans une nouvelle feuille pour suprimer les noms obsolètes avec des filtres textuels.
Malheureusement je ne parviens pas à réimplanter cette liste dans le gestionnaire de noms.
(si j'utilise "Formules"/"Depuis sélection" les noms se réfèrent aux cellules de la liste que j'ai nétoyé, et non à leur cible)
Si vous savez filtrer finement directement dans le gestionnaire, ou réimplanter une liste de noms dans le gestionnaire de noms, vos conseils me seront précieux
j'ai modifié pour trier selon la cible du nom,
et j'ai ajouté un compteur pour controle
voila ce que ça donne
VB:
Sub SupNomGestion()
Dim NomGestion As Name
Dim nb As Integer
nb = 0
For Each NomGestion In ActiveWorkbook.Names
If NomGestion.RefersTo Like "*LISTE*" Then
NomGestion.Delete 'tous les noms faisant référence à l'onglet "LISTE" sont suprimés
nb = nb + 1
End If
Next NomGestion
MsgBox "VBA à suprimé " & nb & " noms"
End Sub
Sub SupNomGestion()
Dim NomGestion As Name
For Each NomGestion In ActiveWorkbook.Names
If NomGestion.Name <> "Toto" Then NomGestion.Delete 'tous les noms seront supprimés sauf toto
Next NomGestion
End Sub
*Attention le nom est sensible à la casse donc toto est différend de Toto
@bhbh, a vrai dire, le problème n'est pas tant les noms avec des erreurs car, marmis les quelques filtres dispos dans le gestionnaire de nom, celui-ci existe.
j'ai modifié pour trier selon la cible du nom,
et j'ai ajouté un compteur pour controle
voila ce que ça donne
VB:
Sub SupNomGestion()
Dim NomGestion As Name
Dim nb As Integer
nb = 0
For Each NomGestion In ActiveWorkbook.Names
If NomGestion.RefersTo Like "*LISTE*" Then
NomGestion.Delete 'tous les noms faisant référence à l'onglet "LISTE" sont suprimés
nb = nb + 1
End If
Next NomGestion
MsgBox "VBA à suprimé " & nb & " noms"
End Sub