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 :

[VBA-E]Changer la "légende" d'une feuille


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut [VBA-E]Changer la "légende" d'une feuille
    Bonjour,

    J'ai un petit soucis en VBA

    Quand vous ouvrez visual basic éditor si vous allez sur une feuille vous avez ses propriétés qui s'affichent :



    Je voudrais savoir si quelqu'un sait comment changer ce que j'ai entouré en rouge, en code VBA ?

    J'ai beau essayé des captions, et des sources name il ne reconnait pas pour l'objet

    Est-ce que quelqu'un aurait une idée sur la chose ?

    Merci beaucoup pour votre aide
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 46
    Points : 55
    Points
    55
    Par défaut
    Je ne crois pas que cela soit possible par code ou peut-être avec une API mais...

  3. #3
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Hello!
    Je crois que j'ai une idée, sans les API:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub ChangeNom()
        ActiveWorkbook.Worksheets("feuil1").Name = "LeNomQueJeVeux"
    End Sub
    Non?

  4. #4
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ok, j'ai dit une c********...
    Désolé....
    Je sors!


  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par Aide en ligne
    Si vous ajoutez un contrôle ou un objet au moment de la conception, vous ne pouvez pas modifier sa propriété Name au moment de l'exécution.
    je crois que c'est clair
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Heuu non c'est pas clair parce qu ela ce n'est pas la propriété Name c'est une autre propriété..donc je ne connais pas le nom
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour,
    Tout ce que tu peux faire, comme l'a indiqué Megaxel, c'est de renommer tes feuilles, alors tu auras
    + Feuil1(nom de la feuille)
    + Feuil2(autre nom de feuille)

    le reste, ce n'est pas possible.

    jpleroisse

  8. #8
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Et sinon, on peut avoir une idée du but de la manoeuvre? Pourquoi veux-tu modifier cette propriété (vu dans l'éditeur VBA), et pourquoi pas seulement le nom "visible" de l'onglet?

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Cette propriété est la propriété Codename de la feuille... Cette propriété est en lecture seule, mais on peut la modifier via le vbproject du classeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.VBComponents(Worksheets("feuil1").CodeName).Name = "sh_Feuille1"
    Pour créer une feuille et la "codenommer" directement, tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Creer_Feuille_Et_Renommer_VBA()
        Dim Feuille As Worksheet
     
        With ThisWorkbook
            Set Feuille = ThisWorkbook.Worksheets.Add()
            ThisWorkbook.VBProject.VBComponents(Feuille.CodeName).Name = "sh_MaFeuille"
        End With
    End Sub
    Attention: Il faut toutefois que la case "Faire confiance au projet Visual Basic" soit cochée dans le menu Excel Outils/Macros/Sécurité/Editeurs approuvés... (en tout cas pour XL2003, pour les versions antérieures, je pense que cette case n'existe pas...)

    Citation Envoyé par Megaxel
    Et sinon, on peut avoir une idée du but de la manoeuvre?
    Le but de la manoeuvre est que le code vba fonctionne même si un utilisateur renomme l'onglet dans Excel, car il est plus compliqué pour un utilisateur de modifier le nom VBA, surtout si le projet VBA est verrouillé.

    Ainsi, si au sein du classeur, tu fais directement référence à la feuille via son nom vba,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh_Feuille1.Range("a1") =...
    ton code fonctionnera toujours, même si l'utilisateur modifie le nom de l'onglet... et il est plus simple de travailler avec des objets que l'on a soi-même nommés, plutôt que d'utiliser Feuil1, Feuil2, qui ne sont pas explicites...





    Ok?

    Pierre Fauconnier
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Merci beaucoup Pierre

    Elle ne doit pas etre en lecture seule puisque comme tu dis on peut la modifier

    En fait le pourquoi je veux utiliser ça c'est que j'ai une macro qui supprime toutes les feuilles a chaque lancement de mon classeur qui import eun fichier texte, qui est éparpillé dans plusieurs feuilles ce qui fait que quand je recharge je dois garder une feuille et son "codename" du coup change

    De plus comme il l'a dit cela est très utile au lieu d'utiliser des noms de feuilles que ut as mis par une macro d'utiliser plutot ce codename

    Merci beaucoup en tout cas
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    En fait, la propriété Codename d'un objet Sheet est en lecture seule.

    Si tu essaies le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thisworkbook.worksheets("Feuille1").codename = "sh_MaFeuille"
    tu obtiendras une erreur "Propriété en lecture seule"...

    mais la propriété Name d'un objet vbcomponent n'est pas en lecture seule, et c'est celle-là que tu modifies avec le code que j'ai donné dans mon message précédent.

    Pierre Fauconnier
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Bien joué, Pierre!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-W]changer de place un numero sur une page word
    Par benco dans le forum VBA Word
    Réponses: 1
    Dernier message: 26/03/2006, 12h37

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