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

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 !

roro69

XLDnaute Impliqué
Bonsoir à tous;
Voici ma question:
J'aimerai pouvor changer le nom de mes feuilles à chaque lancement d'un nouveau classeur dans les propriété du vba.
J'ai déjà ce bout de code qui me permet de changer le nom de mes feuilles:
Sub test()
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = "F" & i + 1
i = i + 1
Next ws
End Sub

si quelqu'un pouvait m'aider merci d'avance.
Bonne soirée à tous
 
Re : Nom feuille

Re, Bonjour Didier

La valeur est "Feuil1"

Après avoir modifié comme ceci, ça fonctionne en prenant la nom de la feuille et non son code name

Code:
Wb.VBProject.VBComponents([COLOR=blue]Ws.Name[/COLOR]).Properties("_CodeName") = "F" & i

Le code name des feuilles est bien F1,F2,F3
 
Dernière édition:
Re : Nom feuille

Bonjour à tous,
Salut PO 🙂,

Je pense que Roro souhaitait avoir le nom F1 dans le nom de l'onglet donc bien le Name et pas le (Name)

Si j'interprète mal la demande de Roro... c'est ce que je souhaiterais 😛

A+ 🙂
A+ à tous
 
Re : Nom feuille

Re,

Ceci fonctionne placé dans le Perso.xls
Je vais le tester en Add-in

Code:
Option Explicit

Sub Nomme_F()
Dim Ws As Worksheet
Dim i As Byte
On Error Resume Next
For Each Ws In ActiveWorkbook.Worksheets
Ws.Name = "F" & i + 1
i = i + 1
Next Ws
End Sub

A+
 
Re : Nom feuille

Re,

Je commence a me perdre un peu avec ces Name ....😀

Pour avoir le nom "F1" ou 2 ou 3 dans l'onglet de la feuille
Code:
Private Sub AppXL_NewWorkbook(ByVal Wb As Excel.Workbook)
Dim Ws As Worksheet
Dim i As Byte
    For Each Ws In Wb.Worksheets
        i = i + 1
        'Wb.VBProject.VBComponents(Ws.Name).Properties("_CodeName") = "F" & i
        Ws.Name = "F" & i
    Next Ws
End Sub

C'est ça que tu souhaites ?
 
Re : Nom feuille

Re,

J'étais en train de faire de multiples tests pour tenter de reproduire votre problème sur ma machine... J'étais justement sur un peu la même piste que btqr, à savoir : la valeur de Ws.CodeName au moment de l'exécution.

Voici ce que je constate :
Apparemment lors de la création du nouveau classeur, il y a un infime laps de temps (on parle en dixième, voire centième de seconde là) qui s'écoule avant que le CodeName de la feuille ne soit véritablement créé en interne dans VBE. Ainsi, sous certaine config, il semble que ce nom ne soit pas encore "disponible" au moment du déroulement du code.

Finalement, btqr contourne le problème en fournissant à la VbComponents le nom de la feuille et non son CodeName, et ainsi ça marche car lors de la création d'une feuille , les deux ont la même valeur ("Feuil1"), en tout cas avec la version française d'Excel. En réalité, vbComponents attend bien un CodeName.

Pourriez-vous tester cette version SVP :

Code:
[COLOR=GRAY][B][I]DANS UN MODULE DE CLASSE[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] AppXL_NewWorkbook([COLOR=NAVY]ByVal[/COLOR] Wb [COLOR=NAVY]As[/COLOR] Excel.Workbook)
[COLOR=NAVY]Dim[/COLOR] Ws [COLOR=NAVY]As[/COLOR] Worksheet
[COLOR=NAVY]Dim[/COLOR] i [COLOR=NAVY]As Byte
    For Each[/COLOR] Ws [COLOR=NAVY]In[/COLOR] Wb.Worksheets
        i = i + 1
        [COLOR=NAVY]Do While[/COLOR] Ws.CodeName = ""
            DoEvents
        [COLOR=NAVY]Loop[/COLOR]
        Wb.VBProject.VBComponents(Ws.CodeName).Name = "F" & i
    [COLOR=NAVY]Next[/COLOR] Ws
[COLOR=NAVY]End Sub[/COLOR]
Cordialement,

EDITION :

J'ajoute qu'en théorie :
Code:
Wb.VBProject.VBComponents(Ws.CodeName).Properties("_CodeName")
et
Code:
Wb.VBProject.VBComponents(Ws.CodeName).Name
sont équivalents
 
Dernière édition:
Re : Nom feuille

Bonsoir;
Merci pour toute vos réponses et votre attention ; eh bien je viens juste de rentrer et j'ai testé ta première version MDF et çà fonctionne bien chez moi ;merci beaucoup
Merci aussi à bqtr ;et jcgl.
Je vous sert un petit jura et trinque à votre bonne santé.
 
Re : Nom feuille

Re,

Je viens de tester ta seconde version et ça marche nickel (Excel 2002).
Je ferais le test avec la première version chez moi sur mon ordi (Excel 2003) un peu plus costaud que celui-ci.

Merci pour les explications

Bonne soirée
 
Re : Nom feuille

Re,

Je viens de tester ta seconde version et ça marche nickel (Excel 2002).
Je ferais le test avec la première version chez moi sur mon ordi (Excel 2003) un peu plus costaud que celui-ci.

Merci pour les explications

Bonne soirée
Merci pour ta collaboration qui m'a permis de cerner le problème. C'est tellement rageant de ne pas comprendre.

J'attends le retour de test de JCGL et si c'est bon, je posterai le correctif en entier.

Cordialement,
 
Re : Nom feuille

Rebonsoir
Je viens de tester ta nouvelle version ;malgré quelque embrouilles entre les macros complémentaires crées ; je constates qu'elle fonctionne parfaitement; mieux que la première qui au bout d'un troisième essai me chargeait une erreur d'exécution "9".
Donc après avoir testé sur qutre nouveau classeur ta dernière version marche parfaitement.
Merci encore
 
Re : Nom feuille

Re bonsoir JCGL Et mdf
Chez moi la dernière version de mdf marche super bien; par contre la version de bqtr change le nom des onglets et non celui des feuilles dans le projet VB.
Bonne soirée
 
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

Discussions similaires

Réponses
5
Affichages
277
Réponses
3
Affichages
688
  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
434
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…