VBA: Problème avec Nom d'une feuille sur son codename

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • Date de début Date de début

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 !

MJ13

XLDnaute Barbatruc
Bonjour à tous

Je cherche à trouver le codename d'une feuille, mais cela ne fonctionne pas si on clique sur le bouton de la macro (voir le fichier). Par contre si on va en mode pas à pas une deuxème fois, il trouve bien le code name. Pourquoi 😕.

Alors, la je sèche 😱.

Merci d'avance pour toute solution qui pourrait empêcher d'aller en mode Pas à Pas 🙂.
 

Pièces jointes

Re : VBA: Problème avec Nom d'une feuille sur son codename

salut Michel🙂

essai comme cela
Code:
 Sheets.Add
ActiveSheet.Name = "Sommaire"
 MsgBox ActiveSheet.CodeName

ou encore

Code:
Sub es()
 MsgBox Sheets("Sommaire").CodeName
End Sub
 
Dernière édition:
Re : VBA: Problème avec Nom d'une feuille sur son codename

Bonjour à tous,
Salut Michel,

Peux-tu essyaer :

VB:
Sub test()
Application.DisplayAlerts = 0
Sheets("Sommaire").Delete
Application.DisplayAlerts = 0
Sheets.Add
ActiveSheet.Name = "Sommaire"
temp = ActiveSheet.CodeName
'MsgBox ActiveWorkbook.Name
NomFACt1 = temp 'Workbooks(ActiveWorkbook.Name).Sheets("Sommaire").CodeName
MsgBox NomFACt1
End Sub

A++
A + à tous

Edition : Salut Laetitia et Bises. Grand beau sur Chamrousse...
 
Dernière édition:
Re : VBA: Problème avec Nom d'une feuille sur son codename

Bonjour Laetitia, Jean-Claude

J'ai bien testé vos codes sur Xl2010, c'est pareil, cela ne marche qu'en mode pas à pas 😕.

Serait-ce un effet de mémoire car je peux dans le même classeur ajouter la feuille Sommaire puis la supprimer, avant de la rajouter.

Si quelqu'un peut tester et me dire si il a le bug de mon fichier chez lui en précisant sa version d'Excel 🙂.
 
Re : VBA: Problème avec Nom d'une feuille sur son codename

Bonjour MJ13 et à tous ,

Hihi, bon découvert il y a longtemps par hasard. (Non ce n'est pas un membre du forum)

Code:
Sub test()
Sheets.Add
ActiveSheet.Name = "Sommaire"
'MsgBox ActiveWorkbook.Name

DoEvents

NomFACt1 = Workbooks(ActiveWorkbook.Name).Sheets("Sommaire").CodeName
MsgBox NomFACt1
End Sub
 
Re : VBA: Problème avec Nom d'une feuille sur son codename

Bonjour Michel,
Bonjour Laetitia, JC, Nono,

Pas sûr d'avoir bien compris tous vos écueils, mais en modifiant le code initial comme suit, ça me semble fonctionner :

Code:
Sub test()
Sheets.Add
ActiveSheet.Name = "Sommaire"
NomFACt1 = ActiveSheet.CodeName
MsgBox NomFACt1
End Sub
Bonne journée à tous.

Cordialement.
 
Re : VBA: Problème avec Nom d'une feuille sur son codename

RE:

Ou plus simplement encore :

Code:
Sub test()
Sheets.Add
ActiveSheet.Name = "Sommaire"
MsgBox ActiveSheet.CodeName
 End Sub
Cordialement.

Edit : je viens de me rendre compte que Laetitia et JC ont déjà développé une solution similaire dans leurs réponses et je ne comprends pas pourquoi ça ne fonctionne pas chez Michel ? Chez moi, sur Excel2010, ça marche sans soucis.
 
Dernière édition:
Re : VBA: Problème avec Nom d'une feuille sur son codename

Bonjour à tous,
Salut les amis,

Vite fait avant de profiter de cette belle journée et des belles pistes de Chamrousse.

Aucune de nos propositions ne fonctionne chez moi en appel de macro...
Elles fonctionnent en Pas à pas.

A++
A + à tous
 
Re : VBA: Problème avec Nom d'une feuille sur son codename

Bonjour à tous

Merci à tous pour vos solutions qui me posent un problème. Le code de Laetitia 🙂 semble fonctionner, bravo. Mais en appel de fonction dans une autre macro me posait toujours le souci.

J'ai contourné le problème j'ai du mettre en place ce code:

Code:
On Error GoTo suite
suite:
    Dim sh As Worksheet
    Dim vdsv As String
Sheets("Sommaire_").Activate
    Set sh = Worksheets("Sommaire_")
    vdsv = sh.[_CodeName]

Sinon, j'ai pu adapter dans le fichier joint 🙂. Il reste encore quelques imperfections mais les grandes lignes sont dans le fichier.
 

Pièces jointes

Dernière édition:
Re : VBA: Problème avec Nom d'une feuille sur son codename

Bonjour à tous,
Salut Michel,

Juste pour perfectionner...
Si dans les Options du VBE, la case "Déclaration des Variables Obligatoires" est cochée, un Option Explicit se retrouve en fin de code de la feuille 'Sommaire_'.

Pas d'incidence sur le code mais une alerte au débogage.

A++
A + à tous

Edition :

VB:
Sub Ecrit_Code_VBA_Dans_Feuille_Sommaire()
    On Error GoTo suite
suite:
    Dim sh As Worksheet
    Dim vdsv As String
    Sheets("Sommaire_").Activate
    Set sh = Worksheets("Sommaire_")
    vdsv = sh.[_CodeName]
    With ActiveWorkbook.VBProject.VBComponents(vdsv).CodeModule
        .InsertLines 1, "Option Explicit"
        .InsertLines 2, " "
        .InsertLines 3, "Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)"
        .InsertLines 4, "On Error Resume Next"
        .InsertLines 5, "If Sheets(ActiveCell.Text).Visible = False Then Sheets(ActiveCell.Text).Visible = True"
        .InsertLines 6, "Sheets(ActiveCell.Text).Select"
        .InsertLines 7, "End Sub"
        .DeleteLines 8
    End With
End Sub
 
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
6
Affichages
591
Réponses
2
Affichages
162
D
  • Question Question
Réponses
5
Affichages
247
Didierpasdoué
D
Réponses
3
Affichages
295
Retour