erreur d'execution 9

Le
JLuc
Bonjour les lecteurs,
J'ai une erreur sur ce code et je ne vois pas pourquoi.
Erreur d'exection 9 sur la ligne en gras. Quelqu'un peu m'aider ?

Sub Somme_multiple()
Dim table()
Dim Long_table As Integer
Dim flag As Boolean
ReDim Preserve table(0, 1)
table(0, 0) = Range("A1")
table(0, 1) = Range("B1")
For x = 2 To Range("A65536").End(xlUp).Row
For y = 0 To UBound(table)
If Cells(x, 1) = table(y, 0) Then
flag = True
Exit For
End If
Next
If flag = True Then
table(y, 1) = table(y, 1) + Cells(x, 2)
Else
Long_table = UBound(table) + 1
*ReDim Preserve table(Long_table, 1)*
table(UBound(table), 0) = Cells(x, 0)
table(UBound(table), 1) = Cells(x, 1)
End If
flag = False
Next
For x = 0 To UBound(table)
Cells(1, 4).Offset(x - 1, 0) = table(x, 0)
Cells(1, 4).Offset(x - 1, 1) = table(x, 1)
Next
End Sub

Merci pour vos reponses

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JLuc
Le #3759121
*ReDim Preserve table(Long_table, 1)*
Bon, c'est pas passé en gras ! Arrrfff!!! C'est cette ligne qui coince

;-)

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

ABED HADDOU
Le #3758981
Bonsoir "JLuc"
je pense que ton problème est la
For x = 2 To Range("A65536").End(xlUp).Row
c'est cette ligne de ton code qui fait apparaître le message de l'erreur N°9
essaie de la remplacé par Range("nb de ligne exacte"). si ce n'est pas la
solution
complète au moins une piste.
A bientôt.


*ReDim Preserve table(Long_table, 1)*
Bon, c'est pas passé en gras ! Arrrfff!!! C'est cette ligne qui coince

;-)

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Clément Marcotte
Le #3758961
Bonjour,

Me semble que j'ai lu ça à quelque part que Redim, ou Redim Preserve, est
limité à une seule dimension. (Peut-être même dans l'aide, soit à Preserve,
soit à Redim, mais c'est vraiment vague.)

Si je trouve, je reviens.


"JLuc"
*ReDim Preserve table(Long_table, 1)*
Bon, c'est pas passé en gras ! Arrrfff!!! C'est cette ligne qui coince ;-)


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Clément Marcotte
Le #3758941
Bonjour,

Pour Excel 2002, c'est dans l'aide de VBA, dans les remarques en bas de la
page de la rubrique Redim.

En gros, quand tu utilises Preserve, tu ne peux redimentionner que le
dernier élément, et pas le premier.




"Clément Marcotte" de news: %
Bonjour,

Me semble que j'ai lu ça à quelque part que Redim, ou Redim Preserve, est
limité à une seule dimension. (Peut-être même dans l'aide, soit à
Preserve, soit à Redim, mais c'est vraiment vague.)

Si je trouve, je reviens.


"JLuc"
*ReDim Preserve table(Long_table, 1)*
Bon, c'est pas passé en gras ! Arrrfff!!! C'est cette ligne qui coince

;-)

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O









Clément Marcotte
Le #3758931
Bonjour,

Je suis porté à penser, mais c'est plus long et plus dur sur la mémoire, que
si tu copiais tes données dans un tableau temporaire, avant de
redimensionner, et de les recopier dans ton tableau, tu pourrais alors te
passer du preserve et redimensionner sans problème.


"Clément Marcotte" de news: %
Bonjour,

Me semble que j'ai lu ça à quelque part que Redim, ou Redim Preserve, est
limité à une seule dimension. (Peut-être même dans l'aide, soit à
Preserve, soit à Redim, mais c'est vraiment vague.)

Si je trouve, je reviens.


"JLuc"
*ReDim Preserve table(Long_table, 1)*
Bon, c'est pas passé en gras ! Arrrfff!!! C'est cette ligne qui coince

;-)

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O









Ange Ounis
Le #3758921
En direct de l'aide :

"Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner que la
dernière dimension du tableau."

----------
Ange Ounis
----------

*ReDim Preserve table(Long_table, 1)*
Bon, c'est pas passé en gras ! Arrrfff!!! C'est cette ligne qui coince ;-)





JLuc
Le #3758911
*Bonjour Clément Marcotte*,
Merci a toi, Ange Ounis et a Habed Haddou pour vos reponses.
Effectivement, j'avais survoler l'aide un peu trop vite et n'avais pas
remarqué que l'on ne pouvais redimentionner que la derniere dimention :
Par manque de rigueur, c'est le crash... lol
Tant pis, je vais essayer d'autres methodes dont celle de Clement :oÞ
Merci quand meme a tous

Bonjour,

Pour Excel 2002, c'est dans l'aide de VBA, dans les remarques en bas de la
page de la rubrique Redim.

En gros, quand tu utilises Preserve, tu ne peux redimentionner que le dernier
élément, et pas le premier.


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Publicité
Poster une réponse
Anonyme