IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Geler le nom des Feuilles Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Geler le nom des Feuilles Excel
    Bonjour,

    je voudrais empecher l'utilisateur de modifier le nom des feuilles (utilise dans les macros) dans un classeur Excel. Quelle instruction dois je utiliser ?

    Autre idee sinon mais pas sur que ce soit possible ...
    Le mieux serait que mon code utilise un nom de la feuille. Est il possible de donner une reference "absolue" a une feuille et de la reutiliser par la suite.
    Je pensais a l'utilisation d'objets d'une collection mais je na'i pas vraiment d'idee. Set Mafeuille = Sheets(1) est impossible vu que je peux bouger les feuilles ...

    Merci pour vos conseils
    ++ Greg

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai une idée mais qui n'est pas absolue.
    Quand tu change le nom d'une feuille, elle conserve son index. Soit tu travailles avec l'index (pas bien pratique mais ça fonctionnerait) mais tu as une autre solution, à l'ouverture de ton fichier, définir le nom de tes feuilles.
    Tu crées un tableaux de tous tes noms de feuilles et ensuite tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Tableau = Array("", "Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5")
    For each LaFeuille in activeworkbook.worksheets
         i = i + 1
         LaFeuille.name = LeTableau(i)
    Next
    Tu mets cette macro dans Sub Workbook_open()

    Pour créer ta macro et obtenir l'index de chaque feuille, tu fais l'inverse en mettant provisoirement le résultat dans une feuille vierge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For each LaFeuille in activeworkbook.worksheets
         i = i + 1
         Cells(i,1).value = LaFeuille.name
    Next
    ... et tu récupères ta liste pour créer le tableau
    Juste une idée puisque la protection des feuilles n'empêche pas de modifier le nom

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tu peu utiliser le "codeName"... : le nom que tu peu modifier dans l'éditeur VBE .. en modifiant la propriété noté (Name) , (avec les parenthéses)..

    puis dans ton code ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Debug.print Feuil1.NAME
    avec Feuil1 .. le "CodeName" de ta feuille pas forcément = au nom de ta feuille ".Name"

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ah ! Je préfère effectivement. Je n'y avais pas pensé

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai restauré ma réponse, le pb avec Feuil1.name étant pour se repérer si tu as un grand nombre de feuilles et pour modifier tes macros si elles sont déjà écrite
    Ensuite, si tes feuilles sont renomées par un utilisateur, à l'examen, tu ne t'y retrouveras plus.

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par ouskel'n'or
    J'ai une idée mais qui n'est pas absolue.
    Quand tu change le nom d'une feuille, elle conserve son index. ...
    et si tu change l'ordre des feuilles...?



    Tu peu aussi protéger le classeur, menu outils /protection / classeur/structure

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    je sais que j'interviens après la bataille, mais en complément des infos données par bbil

    http://silkyroad.developpez.com/VBA/FeuilleDeCalcul/#LI

    http://silkyroad.developpez.com/VBA/...alcul/#LII-B-6


    bonne journée
    michel

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par bbil
    et si tu change l'ordre des feuilles...?
    Tu as vérifié ? L'index ne change pas, et donc tu peux toujours associer le nom à l'index, non ? (je n'ai pas enregistré mon test)
    Tu dis si tu penses le contraire

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par ouskel'n'or
    Tu as vérifié ? L'index ne change pas, et donc tu peux toujours associer le nom à l'index, non ? (je n'ai pas enregistré mon test)
    Tu dis si tu penses le contraire
    si il bouge finalement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub liste()
    Debug.Print "Avant :"
    For Each lafeuille In ActiveWorkbook.Worksheets
      Debug.Print lafeuille.Name
     Next
    Sheets(1).Move After:=Sheets(2)
    Debug.Print "Aprés déplacement"
    For Each lafeuille In ActiveWorkbook.Worksheets
      Debug.Print lafeuille.Name
     Next
    End Sub
    donne :
    Citation Envoyé par Fenêtre exécution
    Avant :
    Feuil1
    Feuil2
    Feuil3
    Aprés déplacement
    Feuil2
    Feuil1
    Feuil3

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Chez moi, il n'avait pas changé (VBA97) mais je n'avais pas enregistré le fichier... Peut-être ceci explique cela. Mais Ok, j'en tiendrai compte.

Discussions similaires

  1. récupérer nom des feuilles excel
    Par hector2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/04/2020, 12h19
  2. [Toutes versions] Renommer automatiquement les noms des feuilles excel
    Par anneso9 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/06/2011, 08h56
  3. [XL-2003] l'affectation des nom aux feuilles excel
    Par foughaa01 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/01/2010, 13h35
  4. Récupérer le nom des feuilles Excel
    Par francky74 dans le forum VBScript
    Réponses: 2
    Dernier message: 27/01/2009, 17h00
  5. Comment remplir un ComboBox avec le nom des feuilles Excel ?
    Par libracom dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/06/2005, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo