OVH Cloud OVH Cloud

Erreur lors d'une affectation dans un tableau VB

2 réponses
Avatar
Martin
Bonjour à vous tous


Je n'arrive pas trouvé le pourquoi du comment si quelqu'un peut me donner
les explications sur mon erreur et la solution ,je la remercie d'avance.

Dans une macro j'ai déclaré un tableau (ex : Noms) et je souhaite mettre
dans ce tableau les noms des personnes qui se trouve dans la colonne B d'une
feuille Excel. Quand j'exécute ma macro j'ai une erreur exécution 9 me
disant que l'indice n'appartient pas à la sélection.

Exemple de ma macro

Sub toto()

Dim Noms() As String

Noms(0) = Range("B1").Value ' <----- c'est ici que j'ai le message
d'erreur exécution 9 l'indice n'appartient pas à la sélection
Noms(1) = Range("B2").Value
etc...

End Sub

J'ai fait un autre essai tout simple

Sub toto()
Dim Noms() As String

Noms(0) = "Tata" ' <--------------- j'ai aussi le
message d'erreur d'exécution 9
Noms(1) = "Titi"

End Sub

2 réponses

Avatar
papou
Bonjour
Il faut définir la dimension de ton tableau, donc par exemple pour un
tableau à 3 lignes :
Dim Noms(0 to 2) As String
Noms(0) = "Tata"
Noms(1) = "Titi"
Noms(2) = "Toto"

Cordialement
Pascal

"Martin" a écrit dans le message de news:
4254fa51$0$19358$
Bonjour à vous tous


Je n'arrive pas trouvé le pourquoi du comment si quelqu'un peut me donner
les explications sur mon erreur et la solution ,je la remercie d'avance.

Dans une macro j'ai déclaré un tableau (ex : Noms) et je souhaite mettre
dans ce tableau les noms des personnes qui se trouve dans la colonne B
d'une feuille Excel. Quand j'exécute ma macro j'ai une erreur exécution 9
me disant que l'indice n'appartient pas à la sélection.

Exemple de ma macro

Sub toto()

Dim Noms() As String

Noms(0) = Range("B1").Value ' <----- c'est ici que j'ai le message
d'erreur exécution 9 l'indice n'appartient pas à la sélection
Noms(1) = Range("B2").Value
etc...

End Sub

J'ai fait un autre essai tout simple

Sub toto()
Dim Noms() As String

Noms(0) = "Tata" ' <--------------- j'ai aussi le
message d'erreur d'exécution 9
Noms(1) = "Titi"

End Sub



Avatar
MichDenis
Bonjour Martin,

Voici 2 autres alternatives,

'-----------------------------
Sub Tableau()

Dim Noms() As String

For a = 1 To 5
ReDim Preserve Noms(1 To a)
Noms(a) = Range("A" & a)
Next

End Sub

'----------------------------
Sub Tableau1()

Dim Noms() As String

ReDim Noms(1 To 5)

For a = 1 To 5
Noms(a) = Range("A" & a)
Next

End Sub
'-----------------------------


Salutations!




"Martin" a écrit dans le message de news: 4254fa51$0$19358$
Bonjour à vous tous


Je n'arrive pas trouvé le pourquoi du comment si quelqu'un peut me donner
les explications sur mon erreur et la solution ,je la remercie d'avance.

Dans une macro j'ai déclaré un tableau (ex : Noms) et je souhaite mettre
dans ce tableau les noms des personnes qui se trouve dans la colonne B d'une
feuille Excel. Quand j'exécute ma macro j'ai une erreur exécution 9 me
disant que l'indice n'appartient pas à la sélection.

Exemple de ma macro

Sub toto()

Dim Noms() As String

Noms(0) = Range("B1").Value ' <----- c'est ici que j'ai le message
d'erreur exécution 9 l'indice n'appartient pas à la sélection
Noms(1) = Range("B2").Value
etc...

End Sub

J'ai fait un autre essai tout simple

Sub toto()
Dim Noms() As String

Noms(0) = "Tata" ' <--------------- j'ai aussi le
message d'erreur d'exécution 9
Noms(1) = "Titi"

End Sub