Suppression de nom de zone

  • Initiateur de la discussion Initiateur de la discussion poloq
  • Date de début Date de début

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 !

P

poloq

Guest
Bonjour,

Je souhaite supprimer tous les noms de zone d'un fichier Excel. Malheureusement, quand je supprime les noms, les cellules qui utilisent ces noms remplacent pas le nom par la cellule de référence.
Résultat, toutes les cellules incluant des noms renvoient #NOM?.

Par exemple, si je nomme la cellule A1 "inflation" et que la cellule A2 a pour formule "inflation*2+C2", lorsque je supprime le nom de zone "inflation", la cellule A2 conserve la formule "inflation*2+C2" et me renvoie #NOM?, puisque le nom de zone "inflation" ne correspond plus a rien
J'aimerais donc que la cellule A2 remplace automatiquement "inflation" par "A1"

Est ce que vous connaissez un moyen pour faire ça ?

Merci infiniment...ça fait plus de trois heures que j'essaye de trouver un moyen sans succès !

Paul.
 
Re : Suppression de nom de zone

Bonsoir Jean-Pierre,

merci pour cette réponse rapide.
En fait, mon problème est que je viens de récupérer un modèle qui contient au bas mot 60 zones nommées...et c'est un vrai calvaire pour s'y retrouver, d'autant plus que j'aimerais le restructurer complètement.
Je sais qu'il est possible de sélectionner une zone sur Excel et de "demander" de remplacer automatiquement toutes les références par les noms (i.e., tous les A1 de la zone sélectionnée par des "inflation" dans l'exemple initial)
là, c'est exactement le contraire que je souhaite faire (i.e., tous les "inflation" par des A1 ), mais je n'y parviens pas !

Merci d'avance pour ton aide,

Paul.
 
Re : Suppression de nom de zone

Re,

Après selection de ta plage, Edition/Remplacer, et premier champ : inflation et dans le second =A1

Sinon il nous faudrait voir un extrait représentatif de ton fichier. (Tu peux le zipper avec le compresseur de Windows)

Bonne nuit.

Jean-Pierre
 
Re : Suppression de nom de zone

Bonsoir Jean-Pierre,

Merci pour cette réponse rapide.
En fait, je viens de recevoir un modèle qui contient au bas mot une soixantaine de zones nommées, et c'est un véritable calvaire pour s'y retrouver. Je souhaite refondre complètement le fichier, et commencer par remplacer toutes les zones nommées par leurs références.
Je sais qu'il est possible de modifier, dans une zone sélectionnée, toutes les références par leur nom (i.e., tous les A1 de la zone sélectionnée par des "inflation" dans l'exemple initial)
Là, c'est exactement le contraire que je souhaite faire (remplacer tous les inflations par des A1 dans la zone sélectionnée), mais je n'y parviens pas !

Merci d'avance pour ton aide,

Bonne soirée,

Paul.
 
Re : Suppression de nom de zone

la fonctionnalité "rechercher/remplacer" est en effet une possibilité...mais fastidieuse, compte tenu du nombre de zones et du fait qu'elles sont situées dans une trentaine d'onglets différents...
 
Re : Suppression de nom de zone

Oui, désolé, mon ordi a fait des siennes et je n'étais pas sûr que le message était parti, donc je l'ai renvoyé.
Et j'ai complété en disant qu'en effet, la fonctionnalité rechercher/remplacer est un possibilité, mais qu'elle est fastidieuse compte tenu du nombre de zones et du fait qu'elle sont disséminées dans une trentaine d'onglets...j'espérais donc qu'il y avait un moyen pour tout remplacer automatiquement...

Merci encore et bonne nuit,

poloq
 
Re : Suppression de nom de zone

Re,

Sans voir ton fichier, sa structure (plusieurs feuilles représentatives) il va être bien difficile de répondre.

S'il faut absolument passer par VBA il sera, de toutes façons, obligatoire.

Bonne nuit.

Jean-Pierre
 
Re : Suppression de nom de zone

Bonsoir poloq, jeanpierre,

Essayez cette macro :

Code:
Sub SupprimeNoms()
Dim nom As Name, ad As String, ref As Range, w As Worksheet
On Error Resume Next
For Each nom In ThisWorkbook.Names 'boucle sur tous les noms du classeur
  ad = Mid(nom, 2, 999) 'adresse si c'est une zone
  Set ref = Range(ad) 'vérifie qu'il s'agit d'une zone
  If Err = 0 Then 'si le nom est bien une zone
    For Each w In Worksheets 'recherche le nom dans toutes les feuilles
      w.Cells.Replace nom.Name, ad, LookAt:=xlPart 'remplace le nom par l'adresse
    Next
    nom.Delete 'supprime le nom
  End If
  Err = 0
Next
End Sub

Bonne nuit.
 
Re : Suppression de nom de zone

Bonjour Jean-Pierre,

merci beaucoup pour ta réponse. j'ai rentré le code dans outils/macro/visual basic editor / Affichage / code
Seule une partie des noms de zone a été retirée, mais il en reste un certain nombre...par exemple, lignes 103 à 107, ce qui renvoie donc des #NOM? partout...

Sais tu si j'ai juste copié le code à un mauvais endroit?

Merci encore,

Paul.
 
Re : Suppression de nom de zone

Bonjour Job, poloq,

Ce n'est pas moi qu'il faut remercier mais job75 pour le code.

Maintenant qu'il y ait encore des problèmes c'est possible mais Job a écrit son code sans voir ton fichier (et c'est déjà fort), donc sans avoir tous les éléments en mains, ce qui peut expliquer la chose.

Pour en saisir la raison il va falloir ton fichier ou un extrait représentant le problème dans son ensemble.

Bon après-midi.

Jean-Pierre
 
Re : Suppression de nom de zone

Ah en effet ;o)
Merci job 75 !

j'ai essayé d'attacher un extrait du fichier dans mon dernier psot mais ça n'a manifestement pas fonctionné...

Je retente le coup...

Ah....je viens de voir que les fichiers ne peuvent pas excéder 48,8k...voila qui est fait !


Merci encore,

Paul.
 

Pièces jointes

Re : Suppression de nom de zone

Bonsoir poloq, jeanpierre,

Merci pour le fichier, mais on ne peut rien faire avec ça.

En effet j'ai testé l'existence de noms de zones avec cette macro :

Code:
Sub Recherche()
Dim nom As Name, ad$, ref As Range
On Error Resume Next
For Each nom In ThisWorkbook.Names 'boucle sur tous les noms du classeur
  ad = Mid(nom, 2, 999) 'adresse si c'est une zone
  Set ref = Range(ad) 'vérifie qu'il s'agit d'une zone
  If Err = 0 Then 'si le nom est bien une zone
    MsgBox "Nom de zone : " & nom.Name & " # " & ad
  End If
  Err = 0
Next
End Sub

Résultat => aucun nom ne correspond à une zone de ce fichier.

Les valeurs d'erreur #NOM? viennent d'autre chose, par exemple en D10 cela vient de cette référence d'un autre fichier :

Code:
'[2010.05.04 - 16h00 - Modèle Manche.xls]1-4 P&L EDF OS'!D9

C'est dans cette cellule qu'il y avait probablement un nom non défini.

A+
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
465
Réponses
7
Affichages
681
Retour