Erreur 9 : l'indice n'appartient pas à la sélection

Résolu/Fermé
néophite - 18 mars 2015 à 16:38
 néophite - 20 mars 2015 à 09:04
Bonjour,

J'essaie de rajouter un bouton dans une nouvelle feuille et de lui attribuer son code ceci en appuyant sur un bouton de mon userform.
Pour l'instant tout fonctionne excepté le code du bouton dans la nouvelle feuille^^


La ligne

With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule

est repérée quand l'erreur 9 est signalée. (vers la fin)

Si quelqu'un peut m'aider ce serait vraiment super!



Private Sub CommandButton1_Click()


' NewGRDF incorporer une nouvelle famille
' Selectionner 2 lignes après la derniere zone de texte dans la colonne B

Dim derlign As Long

derlign = Range("B65536").End(xlUp).Offset(1, 0).Activate

Dim lign As Long

lign = ActiveCell.EntireRow.Select

'Insérer 2 lignes

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

'Insérer texte de la textbox1

Dim txt As String

txt = Range("B65536").End(xlUp).Offset(2, 0).Activate
ActiveCell = TextBox1

Dim truc As Byte

truc = ActiveSheet.Index

'Création et nom de la feuille

Dim Ws As Worksheet

Set Ws = Sheets.Add
Ws.Move After:=Worksheets(truc + 1)

'nom deja pris?

Ws.Name = TextBox1

'Insertion du texte dans la feuille

Range("a1") = "Dernière mise à jour:"
Range("b8") = TextBox1
Range("h1") = "Util. :"
Range("c1") = Date

'Inserer un bouton ramenant à la feuille précédente.

'Création du bouton

Dim btnprec As OLEObject

Set btnprec = Ws.OLEObjects.Add("Forms.CommandButton.1")
With btnprec
.Name = "btnprec"
.Left = 50 'position horizontale par rapport au bord gauche de la feuille
.Top = 50 'position verticale par rapport au bord haut de la feuille
.Width = 30 'largeur
.Height = 17 'hauteur
.Object.Caption = "<--"
End With

'Création de la commande

Dim Code As String

Code = "Sub btnprec_Click()" & vbCrLf
Code = Code & "Sheets(""feuil1"").Select" & vbCrLf
Code = Code & "End Sub"

Dim NextLine As String

With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
NextLine = .CountOfLines + 1
.insertlines NextLine, Code
End With


End Sub


1 réponse

f894009
Messages postés
16483
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
14 mai 2022
1 633
18 mars 2015 à 17:20
Bonjour,

Il faut utiliser le CodeName ex:Feuil2 et non pas le nom de l'onglet ex:azerty

voir:
https://silkyroad.developpez.com/VBA/VisualBasicEditor/

II-B. La propriété VBComponents
0
Merci!
0