Récupérer le (name) d'une feuille

xUpsilon

XLDnaute Accro
Bonjour,

Toujours dans le cadre du développement de mon nouveau configurateur, j'essaye cette fois ci de créer une feuille et d'insérer dans son code un certain code choisi par mes soins.
Pour accéder à ce code j'utilise donc :
VB:
Dim j, LeCode(1 To 15)
        Dim NomClasseur, NomFeuil As String
        Dim Wb As Workbook
            NomClasseur = ActiveWorkbook.Name
            LeCode(1) = "Private Sub Worksheet_Change(ByVal Target As Range)"
            LeCode(2) = "   NbreLignes =3+ Application.CountA(Range(""E1:E65536""))"
            LeCode(3) = "Non = ""NON"
            LeCode(4) = "Oui = ""OUI"
            LeCode(5) = "   If Intersect(Target, Range(""T5:T"" & NbreLignes)) Is Nothing Then Exit Sub"
            LeCode(6) = "   Select Case Target.Offset(0, 1)"
            LeCode(7) = "       Case Is = Oui"
            LeCode(8) = "           Target.Offset(0, 1) = ""NON"
            LeCode(9) = "       Case Is = Non"
            LeCode(10) = "           Target.Offset(0, 1) = ""OUI"
            LeCode(11) = "       Case Else"
            LeCode(12) = "          Target.Offset(0, 1) = ""OUI"
            LeCode(13) = "  End Select"
            LeCode(14) = "Target.Offset(0, 1).Select"
            LeCode(15) = "End sub"
            Set Wb = Workbooks(NomClasseur)
            NomFeuil = Sheets(Worksheets.Count).Name
             
                For j = 1 To 15
                    Wb.VBProject.VBComponents("Spindles").CodeModule.InsertLines j, LeCode(j)
                Next j

Le code que je veux y écrire on s'en fout, ce qui m'intéresse c'est que je n'arrive pas à accéder au code la feuille nommée "Spindles" à moins de l’appeler par son (Name) et non pas son Name. Si j'écris Wb.VBProject.VBComponents("Feuil17").CodeModule.InsertLines j, LeCode(j), ça fonctionne.
1579081550401.png


Le souci c'est que je vais créer un nombre de pages qui peut varier, et je ne sais pas à l'avance quel sera ce (Name). Ma question est donc, comment puis-je appeler ce paramètre pour pouvoir écrire mon code correctement ?

Merci d'avance !
 
Dernière édition:

dysorthographie

XLDnaute Accro
Bonjour,
VB:
Sub test()
Dim script As String
script = "Private Sub Worksheet_Change(ByVal Target As Range)" & vbCrLf
script = script & "   NbreLignes =3+ Application.CountA(Range(""E1:E65536""))" & vbCrLf
script = script & "Non = ""NON" & vbCrLf
script = script & "Oui = ""OUI" & vbCrLf
script = script & "   If Intersect(Target, Range(""T5:T"" & NbreLignes)) Is Nothing Then Exit Sub" & vbCrLf
script = script & "   Select Case Target.Offset(0, 1)" & vbCrLf
script = script & "       Case Is = Oui" & vbCrLf
script = script & "           Target.Offset(0, 1) = ""NON" & vbCrLf
script = script & "       Case Is = Non" & vbCrLf
script = script & "           Target.Offset(0, 1) = ""OUI" & vbCrLf
script = script & "       Case Else" & vbCrLf
script = script & "          Target.Offset(0, 1) = ""OUI" & vbCrLf
script = script & "  End Select" & vbCrLf
script = script & "Target.Offset(0, 1).Select" & vbCrLf
script = script & "End sub"

ThisWorkbook.VBProject.VBComponents.Item("Feuil1").CodeModule.AddFromString script

End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley