Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur d'execution 9

7 réponses
Avatar
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

7 réponses

Avatar
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

Avatar
ABED HADDOU
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






Avatar
Clément Marcotte
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" a écrit dans le message de news:

*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





Avatar
Clément Marcotte
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" a écrit dans le message
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" a écrit dans le message de news:

*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









Avatar
Clément Marcotte
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" a écrit dans le message
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" a écrit dans le message de news:

*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









Avatar
Ange Ounis
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 ;-)





Avatar
JLuc
*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