Changer le nom INTERNE des feuilles

Emmanuel31

XLDnaute Occasionnel
Bonjour.

Je cherche à savoir comment changer le nom INTERNE d'une feuille excel via une macro.

En fait j'ai une macro qui copie une feuille et renomme le nom de l'onglet, mais le nom interne reste Feuill0x or moi je souhaiterais que la feuille ainsi copiée porte le nom AnnéeC (ou C est la valeur que je récupère via une fenetre de saisie).

Des idées ou une aide ?

Ci-joint mon fichier d'origine pour que vous compreniez le truc ...

Merci @ vous !
 

Pièces jointes

  • Suivi présence.zip
    45.6 KB · Affichages: 53
  • Suivi présence.zip
    45.6 KB · Affichages: 53
  • Suivi présence.zip
    45.6 KB · Affichages: 53

Cousinhub

XLDnaute Barbatruc
Re : Changer le nom INTERNE des feuilles

Bonsoir,

Tiré de l'aide VBA sur CodeName :

Remarque La valeur qui apparaît dans la cellule affichée à droite de (Nom) dans la fenêtre Propriétés correspond au nom de code de l'objet sélectionné. Au moment de la création, vous pouvez changer le nom de code d'un objet en modifiant cette valeur. Il est toutefois impossible de modifier cette propriété par programmation au moment de l'exécution.

Donc, comme tu l'as fait, à la main....

Bonne soirée
 

Caillou

XLDnaute Impliqué
Re : Changer le nom INTERNE des feuilles

Bonjour,

C'est la propriété CodeName qui renvoie le nom de code de la feuille. Mais à mon humble avis, ceci ne peut pas etre modifié en programmation.
Taper CodeName dans un module, clic dessus, puis appuie sur F1.

Bon courage

Caillou

Edit : désolé, trop lent! Bonjour bhbh
 
Dernière édition:

Emmanuel31

XLDnaute Occasionnel
Re : Changer le nom INTERNE des feuilles

Bon ben tant pis alors ...

Petite question bonus toujours sur le fichier ... comment ajouter une nouvel onglet (ça je sais faire) APRES un onglet définit par un nom ...

Exemple d'onglets :

test 1/ test 2/ toto 1/ toto2

Comment dire d'ajouter après le dernier "test x" pour donner :
test 1/ test 2/ test 3/ toto 1/ toto 2

Merci les p'tits amis :D
 

Caillou

XLDnaute Impliqué
Re : Changer le nom INTERNE des feuilles

Réponse pour la question bonus :

J'ai bricolé ce bout de code, essayes de voir si ca te convient (désolé mais je n'ai pas eu le temps de commenter)
Code:
Sub InsereFeuilleTest()
  Dim f As Worksheet
  Dim cpt_test As Integer
  cpt_test = 0
  For Each f In Worksheets
    If Left(f.Name, 4) = "Test" Then
      cpt_test = cpt_test + 1
    End If
  Next
  If cpt_test <> 0 Then
    Worksheets.Add after:=Worksheets("Test" & cpt_test)
    ActiveSheet.Name = "Test" & cpt_test + 1
  Else
    Worksheets.Add
    ActiveSheet.Name = "Test1"
  End If
End Sub

Caillou
 

Emmanuel31

XLDnaute Occasionnel
Re : Changer le nom INTERNE des feuilles

Arf ...
J'ai essayé de l'applique à mon exemple mais j'ai un souci lors du :
Worksheets.Add after:=Worksheets("Horaires " & cpt_test)

:-(

Mes onglets sont :
Création Année/ Horaires 2010/ 2010/

Et en fait, l'année qui va être créée est demandé dans une fenetre et prends la valeur C.

Le but est de copier un onglet "Horaires" au bon endroit (je me charge de le renommer avec le bon nom derrière) et de copier un onglet "Année" au bon endroit aussi (que je renomme ensuite avec la valeur ...

En gros après demande de la valeur et que je saisie 2011 le but est d'avoir :
Création Année/ Horaires 2010/ Horaires 2011/ 2010/ 2011/

et ainsi de suite ... mais là je bloque ...
 

Emmanuel31

XLDnaute Occasionnel
Re : Changer le nom INTERNE des feuilles

J'ai fait ceci :
Code:
Sub InsereFeuilleTest()
  Dim f As Worksheet
  Dim cpt_test As Integer
  cpt_test = 2010
  For Each f In Worksheets
    If Left(f.Name, 4) = "Horaires " Then
      cpt_test = cpt_test + 1
    End If
  Next
  If cpt_test <> 0 Then
  Worksheets("Horaires").Copy after:=Worksheets("Horaires " & cpt_test)
 '   Worksheets.Add after:=Worksheets("Horaires " & cpt_test)
    ActiveSheet.Name = "Horaires (2)"
  Else
    Worksheets.Add
    ActiveSheet.Name = "Test1"
  End If
End Sub

Ca marche bien mais ne respecte pas d'ordre ...

C-a-d que j'ai bien au départ :
Horaires 2010/ 2010
Puis
Horaires 2010/ Horaires 2011/ 2010 /2011
Mais après j'ai
Horaires 2010/ Horaires 2012/ Horaires 2011/ 2010 /2011 /2012
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Changer le nom INTERNE des feuilles

Bonjour à tous,

Voici ce que m'avait proposé mDF pour une modification à la création :

Dans un Module de Classe :

Code:
Option Explicit
'---------------------------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 12/09/2008
' Sujet     : mDF_CodeNameDefaut
'             Applique un CodeName par défaut "F" aux feuilles des nouveaux classeurs
'             et/ou
'             Applique un Name par défaut "F" aux feuilles des nouveaux classeurs
'---------------------------------------------------------------------------------------
Public WithEvents AppXL As Application

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

Dans le ThisWorkBook :

Code:
Option Explicit

Dim clsApp As New XLclass

Private Sub Workbook_Open()
    Set clsApp.AppXL = Application
End Sub

A+ à tous
 

Discussions similaires

Réponses
5
Affichages
214

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino