Masquer le nom d'une plage Nommée Excel

Résolu
L28 Messages postés 176 Statut Membre -  
 Philippe -
Bonjour,

J'ai effectué un mini programme sur Excel qui pour des raison de lisibilité et de facilité m'a nécessité par mal de plages nommées au point que la liste des plages nommées est très importante.

Cependant j'aimerai que l'utilisateur, qui a envie de regarder dans la liste déroulante des plages nommées, ne puisse pas voir ces noms puisqu'elle font parties d'une feuille dont il n'a pas accès.

Je voulais donc savoir si on pouvait cacher le nom des plages nommées. Soit par exemple en les rendant visibles uniquement sur leur feuille respective ou en les cachant directement.

Merci d'avance pour votre réponse!

9 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Re,

    une solution à ton pb :
    Private Sub masquerNoms()
        'masque tous les noms commençant par "z_"
        Dim nom As Name
        For Each nom In ActiveWorkbook.Names
            If Left(nom.Name, 2) = "z_" Then nom.Visible = False
        Next nom
    End Sub

    Et ils restent utilisables dans les formules.
    J'ai fait le choix qu'ils commencent tous pareil pour ne pas à avoir à les lister dans la macro mais tu peux faire autrement.
    Le principe est :
    ActiveWorkbook.Names("nom").visible=false

    eric
    4
    1. Philippe
       
      Exactement ce que je cherchais merci
      0
  2. bonobo47 Messages postés 161 Statut Membre 13
     
    Protège tes feuilles ? Non ?

    Tu travailles sous quelle version excel ?
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    pas d'idée pour l'instant pour les masquer mais tu peux commencer les noms que tu ne veux pas voir par z pour qu'ils soient tous en fin de liste.

    eric
    0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Les masquer complétement je ne crois pas possible, par contre on peut limiter l'affichage dans la barre d'adresse.
    exemple nommer un plage A1:A20 titi
    ensuite nommer la dernière cellule A20 exemple toto
    ouvrir le gestionnaire des noms activer la plage nomme titi que l'on active

    =Feuil1!$A$1:$A$20
    remplacer la borne de fin par le nom de la dernière cellule
    =Feuil1!$A$1:toto
    la plage nommée titi n'est plus visible dans la barre d'adresse

    sur le même principe tu peux saisir les bornes de ta plage nommée dans une cellule exemple en M1 tu saisis (la colonne peut être masquée sur mettre sur un onglet différent et rendre invisible la feuille

    Feuil1!$A$1:$A$20

    et dans le gestionnaire nommer la plage et la formule est =INDIRECT($M$1)

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bonobo47 Messages postés 161 Statut Membre 13
     
    J'ai vérifié, si tu protèges tes feuilles (Onglet révision, protéger la feuille) personne ne verra tes formules donc tes plages
    0
  7. L28 Messages postés 176 Statut Membre 132
     
    Bonjour,

    Merci pour vos réponses!

    J'avoue que les deux idées sont intéressantes, entre indexer les nom à l'aide d'une lettre et créer des cellules masques cela peut être bien utile pour dépanner.

    Le soucis c'est que j'ai déjà essayé le INDIRECT et cela m'avait fait une belle usine à gaz vu qu'a chaque modification du tableau il fallait rentrer de nouveau toutes les adresses. (Je suis en mode découverte d'excel on va dire)

    Pour les lettres j'avoue que cela rendra la liste plus lisible mais les listes resteront visibles.

    Je trouve un peu dommage que le mode veryHidden ne masque pas tous les éléments en rapport avec la feuille masquée...

    0
  8. L28 Messages postés 176 Statut Membre 132
     
    Bonjour! J'ai protégé mes feuilles, et même masquées certaines.
    Je travaille sur 2010 mais le tableur doit être compatible excel 2003... J'ai appris malheureusement qu'il n'y avait pas que le xlsx comme différence...

    Ce que j'ai fait c'est créer une feuille "sauvegarde" qui permet de conserver certains éléments même lors de la fermeture du fichier.

    Pour cela j'ai créer un plage NOM (qui permet d'être utilisée dans une cellule liste)
    Une plage Position (qui permet au programme de retrouver la position de la sauvegarde)
    et deux trois autres trucs qui permettent de rendre le système de sauvegarde plus "performant"
    Cette feuille sauvegarde est cachée et protegée au niveau de l'interface utilisateur.
    Mais dans la liste des noms on retrouve toujours ces listes...
    0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    RE,

    La protection de la feuille cache les formules "oui" mais ne cache pas les noms des plages nommées et sont accessible depuis la barre d'adresse ou le gestionnaire des noms

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  10. L28 Messages postés 176 Statut Membre 132
     
    Merci Eriiiiiiiic!!
    Ça marche du tonnerre!
    J'avoue que là oui je ne pourrais pas appliquer la première méthode ça me ferai trop de noms à modifier. J'y penserai pour un prochain classeur

    En tout cas milles merci à vous tous pour votre aide! En espérant que cela serve à d'autres!
    0