noms d'une feuille : obtenir name à partir de codename

dmc

XLDnaute Occasionnel
Bonjour à tous les XLDiens.
Je bute sur un truc à priori idiot : j'ai le codename de la feuille, je n'arrive pas à obtenir son name (ou le contraire, à force de buter là-dessus, je commence à confondre !).
Dans tous les cas, ayant l'un il doit bien avoir un moyen de connaitre l'autre.
Voici ma macro, chargée de placer du code dans des feuilles et dans un module standard sur un classeur, mais selon 1 critère : que le nom de la feuille enrichie contienne la séquence de caractères passée dans le paramètre "modele_is".
Code:
 Private Function macro_insert(ma_place As String, File_Is As String, Modele_Is As String)

Dim ma_macro_is As String
Dim VBComp As Object
Dim wBComp As Object
Dim X As Integer
    ma_macro_is = ThisWorkbook.Name
    Workbooks.Open Filename:=ma_place & File_Is
    Sheets(1).Activate
    ' insertion des macros
    'boucler sur chaque module du nouveau classeur (ThisWorkbook + Feuilles + Modules + UserForms + Modules de classe)
    For Each VBComp In Workbooks(File_Is).VBProject.VBComponents
        Select Case VBComp.Type
        Case 1          ' vbext_ct_StdModule                 ' 1
            ' I = VBComp.CodeModule.CountOfDeclarationLines + 1
            X = VBComp.CodeModule.CountOfLines
            If X > 0 Then Workbooks(File_Is).VBProject.VBComponents.Remove VBComp
        Case 100        'vbext_ct_Document    ' 100   (And vbComp.Name = CodeNouvFeuille)
        'si il s'agit d'un module de type Feuille
            'copier le code contenu dans le Module "Module2" de ce classeur
            ' uniquement si modules de feuilles tarifs
            zz = Worksheets(Modele_Is).CodeName
            zz2 = Worksheets(Modele_Is).Name
            [B][COLOR="red"]'If InStr(1, VBComp.Name, Modele_Is, vbTextCompare) > 0 Then[/COLOR][/B]  <----- c'est cette ligne que je veux mettre au point !!!
                With Workbooks(ma_macro_is).VBProject.VBComponents("Module2").CodeModule
                    If VBComp.CodeModule.CountOfLines > 0 Then 'enlever le code déjà existant
                        VBComp.CodeModule.DeleteLines 1, VBComp.CodeModule.CountOfLines
                    End If
                    VBComp.CodeModule.AddFromString .Lines(1, .CountOfLines)
                End With
            'End If
        End Select
    Next VBComp
    'Ajoute un module standard dans le classeur
    Set wBComp = Workbooks(File_Is).VBProject.VBComponents.Add(1)
    'Renomme le module
    'wBComp.Name = "ModuleFonctions"
    With Workbooks(ma_macro_is).VBProject.VBComponents("Module3").CodeModule
        wBComp.CodeModule.AddFromString .Lines(1, .CountOfLines)
    End With
  Workbooks(File_Is).SaveAs ma_place & Left(File_Is, InStr(1, File_Is, ".xls") - 1) & ".xls", xlNormal
    ActiveWorkbook.Close
 End Function

Alors si vous avez un moment, une envie, une curiosité, que vous n'êtes pas trop ballonné par le précédent reveillon, pas encore absorbé par celui qui s'approche, bref si vous avez le virus xldien, sautez sur cette occasion et sortez moi de là, cela fera 2 heureux, dont surtout moi, bien sur !
Amicalement
DMC
 

Pierrot93

XLDnaute Barbatruc
Re : noms d'une feuille : obtenir name à partir de codename

Bonsoir,

regarde ceci si cela peut t'aider...
Code:
'nom de la feuille a partir du codename
MsgBox Feuil1.Name
'codename de la feuille a partir du nom
MsgBox Sheets("Feuil1").CodeName
bonne soirée
@+
 

dmc

XLDnaute Occasionnel
Re : noms d'une feuille : obtenir name à partir de codename

Bonsoir Pierrot93, et merci de cette réponse si rapide.
Néanmoins, la syntaxe Sheets("Feuil1").CodeName plante (erreur d'indice), donc je n'ai pas encore la solution.
Merci quand même, si tu as une autre idée , je prends .
Amicalement
 

Discussions similaires