Erreur d'éxécution 9 l'indice n'appartient pas à la selection

siamens_duj Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   -  
siamens_duj Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Depuis deux jours je suis un problème que je n'arrive pas à résoudre.
Quand j'éxécute mon code il me met "erreur d'éxécution 9 l indice n'appartient pas à la selection". Et j'ai l'impression que ça me fait planter mon code.
Mon classeur est bien enregistré en "Prennant en charge les macros".

Je vous joins mon code :

Private Sub CommandButton1_Click()

Dim Reference As String
Dim i As Integer
BLeft = 2
BTop = 40
BWidth = 72
BHeight = 24
Dim obj As Object
Dim Code As String

Reference = InputBox("Saisie de la référence de la pièce : ", Recherche)

For i = 5 To 200

Do While Reference = Cells(i, 4).Value 'Then
Cells(i, 4).EntireRow.Font.Color = RGB(4, 139, 154)
Set obj = CreateObject("Excel.Application")
Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=2, Top:=60, Width:=72, Height:=24)
obj.Name = "BoutonTest"

'Le texte de la macro
Code = "Sub BoutonTest_Click()" & vbCrLf
Code = Code & "Call Tester" & vbCrLf
Code = Code & "End Sub"
'Ajoute la macro en fin de module feuille
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
.insertlines .CountOfLines + 1, Code
End With

With BoutonTest
BoutonTest.Visible = True
End With

Loop
Next i

If Reference <> Cells(i, 4).Value Then
MsgBox "Cette référence n'existe pas"
Exit Sub

End If

End Sub


Private Sub BoutonTest_click()

Dim i As Integer
For i = 5 To 200

If Cells(i, 4).EntireRow.Font.Color = RGB(4, 139, 154) Then
Cells(i, 4).EntireRow.Font.Color = RGB(0, 0, 0)
End If

Next i

With BoutonTest
BoutonTest.Visible = False

End With

End Sub


Merci pour votre aide.
A voir également:

1 réponse

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

Tu n'aurais pas fait une boucle infinie avec ton While ?

A+
0
siamens_duj Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   7
 
Bonjour et merci pour votre réponse.

Ce n'est visiblement pas cela car quand je change le While et If il se passe la même chose ..
0
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Et obj qui est défini deux fois, c'est normal ?
Excel plante lamentablement ou il te propose le débogueur ? Dans ce dernier cas, quelle ligne est surlignée en jaune ?
Le but de ton code est d'ailleurs très mystérieux... Faire apparaître du code VBA dans une feuille ?!
0
siamens_duj Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   7
 
J'ai oublié de mettre Set obj = CreateObject("Excel.Application") en commentaire, c'était une des nombreuses chose que j'avais testé .. Mais j'ai toujours "erreur d'éxécution 9 ..."
Excel plante, il ne me propose pas le débogueur, juste "Fin" donc pas de ligne en jaune.
Mon code sert en fait à dire : Si la valeur entré dans l'inputBox est égal à la valeur de la cellule (i, 4) alors il faut créé un bouton qui sera visible et mettre l'écriture en couleur bleu de toute la ligne où la valeur correspond (à ce qui est entré dans l'inputBox).
Le bouton qui est créé dans cette première partie de code est ensuite codé à son tour dans la deuxième partie du code.
Il dit que quand on clique sur le bouton, si l'écriture de la ligne est bleu alors il faut la mettre en noir et mettre le bouton en invisible.
0