Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

supprimer les noms des plages de cellules

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sofiane Boukecha

XLDnaute Nouveau
Bonjour tout le monde,

je voudrai supprimer les noms des plages de cellules qui ne sont pas visible sur le "Gestionnaire des Noms"

par ce qu'à chaque fois j'ouvre mon classeur, il se met à jour avec des liaisons d'autres classeurs (lent), j'ai vérifié les noms de plages dans le "Gestionnaire de Nom", j'ai rien trouvé d'anormal,
mais quand j'ai vérifié à l'aide d'un code VBA, le résultat était surprenant: PLEIN de noms qui font référence à des plages sur d'autres classeurs.
je veux supprimer ces noms invisibles.
merci


code VBA

Sub test()
Dim N As Name, A As Integer
Dim Sh As Worksheet
Set Sh = ThisWorkbook.Worksheets.Add
With Sh
.Range("A1") = "Nom"
.Range("B1") = "Plage de cellules"
A = 1
For Each N In ThisWorkbook.Names
A = A + 1
.Range("A" & A) = N.Name
.Range("B" & A) = "'" & N.RefersToLocal
Next
.Range("A1").CurrentRegion.EntireColumn.AutoFit
End With
End Sub
 
bonjour Job75, et merci à vous,

j'ai essayé votre solution, elle marche bien mais avec 2 inconvénient:
- votre code ne supprime pas les noms qui ont une erreur de référence (plage déjà supprimée)
- il y'a des noms qui font références a d'autre classeur , mais que j'en ai encore besoin. (si c'est pas possible, c'est pas grave, je vais les réinsérer)

merci bcp
 
Re,

Voyez cette autre solution :
Code:
Sub Epuration()
Dim n As Name
For Each n In ThisWorkbook.Names
If IsError(ExecuteExcel4Macro(Mid(n.RefersToR1C1, 2))) Then n.Delete
Next
End Sub
Cela dit s'il n'y a pas trop de noms à supprimer il vaut mieux les supprimer manuellement, on voit ce qu'on fait.

Il n'est absolument pas normal qu'il y ait comme vous dites PLEIN de noms à supprimer.

A+
 
merci à vous,
mais comment les supprimer manuellement alors que les noms ne sont pas visibles sur le "gestionnaire de nom"??

pour la solution, j'ai porté pour la première qui supprime tout les noms faisant références à d'autres classeurs,
pour les erreurs de références, j'ai créé un autre code en modifiant le votre ("[" remplacé par #REF!)

Sub EpurationRef()
Dim n As Name
For Each n In ThisWorkbook.Names
If InStr(n.RefersTo, "#REF!") Then n.Delete
Next
End Sub
 
votre code est vraiment à sa place, maintenant tout les noms sont visibles, je peux supprimer ceux qui sont de trop.
mon classeur est devenu plus souple et plus léger.
merci beaucoup à vous.
pourquoi certains étaient cachés? ça j'en ai aucune idée, l'essentiel maintenant vous m'avez donné une solution.

merci encore une fois
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
461
Réponses
5
Affichages
477
Réponses
6
Affichages
336
Réponses
3
Affichages
673
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…