Erreur d'exécution '9

Bonjour,

J'ai un petit problème avec un de mes codes, j'ai un fichier excel qui possède un Userform, dans ce userform, une testbox (Textbox1) est remplie par le biais d'une cellule de ma feuil1, il s'agit d'un nombre par exemple 18,2.

J'ai une textbox2 qui, en fonction d'un tableau de nombres normalisés, doit se remplir en recherchant la plus proche valeur normalisée par rapport au nombre de la textbox1. Voici mon code :

Private Sub TextBox1_Change()

Dim PN As Variant 'Déclare la variable PN (tableau des Puissances Normalisées)
Dim VT As Double 'Déclare la variable VT (Valeur de la TextBox1)
Dim TD(1 To 9) 'Déclare la variable TD (Tableau des différences)
Dim i As Long

TextBox1.Value = Format(TextBox1.Value, "##.#")

    If Me.TextBox1.Value = "" Then VT = 0 Else VT = CDbl(Me.TextBox1.Value) 'Définit la variable VT
    PN = Array(3, 6, 9, 12, 15, 18, 24, 30, 36) 'Définit le tableau PN des puissances normalisées
    For i = 1 To 9 'Boucle sur les 9 puissance normalisée
    TD(i) = Abs(PN(i) - VT) 'Attribue à la variable indéxée TD(I) la valeur absolue de la différence entre la valeur de la TextBox1 et celle de la puissance normalisée de la boucle
    Next i 'Prochaine puissance normalisée de la boucle
    For i = 1 To 9 'Boucle sur les 9 éléments du tableau des différences TD
    'Si l'élément est le plus petit de tous, renvoie dans la TextBox2 la puissance normalisée correspondante à l'index de TD, sort de la procédure
    If TD(i) = Application.WorksheetFunction.Min(TD) Then Me.TextBox2.Value = PN(i): Exit Sub
    Next i

End Sub

Le problème est que j'ai une erreur sur la ligne :

 TD(i) = Abs(PN(i) - VT) 

Erreur d'exécution 9 'L'indice n'appartient pas à la sélection'

Je ne vois pas d'où vient l'erreur, auriez-vous une idée à me suggérer ?

Merci d'avance !

Bonjour

Essaie en faisant varier i de 0 à 8 et non de 1 à 9.

Bye !

Bonjour gmb et merci pour ta réponse !

En effet, le problème est résolu, mais peux tu m'expliquer pourquoi je dois mettre de 0 à 8 plutôt que 1 à 9 ?

Merci

Bonjour.

C'est ainsi en informatique, les tableaux (et d'autres choses) commencent à 0.

Bonne journée.

D'accord, merci pour l'infos !

Rechercher des sujets similaires à "erreur execution"