Erreur d'exécution 9....VBA-Excel (tableau)

Résolu
Begin_09
Messages postés
5
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
18 septembre 2007
- 22 juin 2007 à 11:19
cs_etniqs
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016
- 22 juin 2007 à 15:11
Bonjour,

J'ai un problème avec l'utilisation des tableaux sous VBA (Excel 2003). Lorsque je veux lire mon tableau, j'ai toujours l'erreur 9, "l'indice n'appartient pas à la sélection". Je vous mets le petit morceau de code qui me cause ces soucis :

Sub Bouton1_QuandClic()
    Dim matable() As Variant
    Workbooks.Open "c:\a_lire.xls"
    matable = Range("a22:l22")
    ActiveWorkbook.Close
    For i = 1 To 5
        toto = matable(i).Value
        MsgBox "resultat :" & toto
    Next i
End Sub

D'avance je vous remercie si quelqu'un pourrait m'indiquer ma misérable erreur...

3 réponses

jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
59
22 juin 2007 à 11:32
Salut,
Parce que matable devient un tableau à deux dimension.

Que cherches tu à faire exactement? si tu souhaite mémoriser dans une varianle le contenu de la plage A22:L22 pourquoi ne pas l'assigner à une variable Range tout simplement?

Sinon essaie
Dim matable As Variant
   matable = Range("a22:l22")
   For i = 1 To 5
       toto = matable(1, i)
       MsgBox "resultat :" & toto
   Next i, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
Begin_09
Messages postés
5
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
18 septembre 2007

22 juin 2007 à 12:50
Re,

Merci pour la réponse. Effectivement, j'avais oublié qu'il fallait préciser le numéro de ligne dans le tableau (1, dans l'exemple). Ta proposition d'assigner le contenu de la plage à une variable c'est pas ce que j'ai fait ?
 
matable = range ("a22:L22")

La boucle étant pour contrôler uniquement...
3
cs_etniqs
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

22 juin 2007 à 15:11
si, c'est ce que tu as fait, le problème est la lecture du tableau :

matable(1, i) et non
matable(i), puisque deux dimensions

coïto ergo sum
3