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

taille tableau

8 réponses
Avatar
pierref
bonjour,

je declare un tableau en variant et je le remplis dans une
boucle.

le nb de lignes et fixe, par contre , j'aimerais connaitre
son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+

8 réponses

Avatar
Eric
re,

je te fais passer un petit exemple, il fait suite à ta premiere demande.
Donc j'ai mis en ligne 0 du texte à la colonne 0

Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) ' Agrandissement sur les colonnes
tablo(i, 0) = i: tablo(i, 1) = 2 * i: tablo(i, 1 + i) = 3 * i
Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre la taille
'de la 2e dimension (colonne)
Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre dexecution pour voir le
résultat.

A+
Eric

"pierref" écrivait
news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis dans une
boucle.

le nb de lignes et fixe, par contre , j'aimerais connaitre
son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



Avatar
pierref
Dim tabcorrel

ReDim tabcorrel(0, 0)

//normalement, je boucle sur ce qui suit
//(mon recordset "temp" change a chaque iteration)

temp.MoveLast
longueur = temp.RecordCount

nbcol = UBound(tabcorrel, 2) + 1
ReDim Preserve tabcorrel(0 To (longueur), 0 To nbcol)
tabcorrel(0, nbcol) = nom
i = 1
temp.MoveFirst
Do Until temp.EOF
tabcorrel(i, nbcol) = temp!valeur
i = i + 1
temp.MoveNext
Loop

voila mon code, en sachant que temp est un recordset qui
contient des double, et que longueur correspond a la
taille du recordset.(qui est tjs la meme cad 43)

Ca plante sur le redim preserve... j'ai l'erreur :
"indice en dehors de la plage", dès le premier passage.

merci de m'aider une fois de plus
:-)


-----Message d'origine-----
re,

je te fais passer un petit exemple, il fait suite à ta
premiere demande.

Donc j'ai mis en ligne 0 du texte à la colonne 0

Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) ' Agrandissement
sur les colonnes

tablo(i, 0) = i: tablo(i, 1) = 2 * i: tablo(i, 1
+ i) = 3 * i

Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre la
taille

'de la 2e dimension
(colonne)

Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre dexecution
pour voir le

résultat.

A+
Eric

"pierref" écrivait
news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis dans
une


boucle.

le nb de lignes et fixe, par contre , j'aimerais
connaitre


son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



.




Avatar
Eric
Est ce génant si tu me fais passer ta base avec juste ce qu'il faut pour
faire le traitement, à savoir la source de tes recordsets car là faut
mettre des points d'arrêt dans la procédure et faire du pas à pas.
Laisses ta proc je regarderai comment elle tourne pour adapter.

Si c'est pas confidentiel, tu peux m'envoyer ca a mon adresse en enlevant
les ZZ. Base en zip ou rar

Ok ?
Eric

"pierref" écrivait
news:428c01c42b93$49e77930$:

Dim tabcorrel

ReDim tabcorrel(0, 0)

//normalement, je boucle sur ce qui suit
//(mon recordset "temp" change a chaque iteration)

temp.MoveLast
longueur = temp.RecordCount

nbcol = UBound(tabcorrel, 2) + 1
ReDim Preserve tabcorrel(0 To (longueur), 0 To nbcol)
tabcorrel(0, nbcol) = nom
i = 1
temp.MoveFirst
Do Until temp.EOF
tabcorrel(i, nbcol) = temp!valeur
i = i + 1
temp.MoveNext
Loop

voila mon code, en sachant que temp est un recordset qui
contient des double, et que longueur correspond a la
taille du recordset.(qui est tjs la meme cad 43)

Ca plante sur le redim preserve... j'ai l'erreur :
"indice en dehors de la plage", dès le premier passage.

merci de m'aider une fois de plus
:-)


-----Message d'origine----- re,

je te fais passer un petit exemple, il fait suite à ta premiere
demande. Donc j'ai mis en ligne 0 du texte à la colonne 0

Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) ' Agrandissement sur les
colonnes tablo(i, 0) = i: tablo(i, 1) = 2 * i: tablo(i, 1 + i)
= 3 * i
Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre la taille 'de la 2e
dimension (colonne)
Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre dexecution pour voir le
résultat.

A+
Eric

"pierref" écrivait
news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis dans une boucle.

le nb de lignes et fixe, par contre , j'aimerais connaitre
son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



.







Avatar
pierref
en fait je peux pas te la faire passer...
c'est plutot confidentiel. malheureusement.

J'ai fait du pas a pas mais y'a rien d'incohérent :
longueur et nbcol ne sont pas à 0 lors du plantage.

Sinon, tu ne vois rien de faux dans le bout de code que
j'ai mis dans le message précédent ?

En tout cas merci bcp

a+

-----Message d'origine-----
Est ce génant si tu me fais passer ta base avec juste ce
qu'il faut pour

faire le traitement, à savoir la source de tes recordsets
car là faut

mettre des points d'arrêt dans la procédure et faire du
pas à pas.

Laisses ta proc je regarderai comment elle tourne pour
adapter.


Si c'est pas confidentiel, tu peux m'envoyer ca a mon
adresse en enlevant

les ZZ. Base en zip ou rar

Ok ?
Eric

"pierref" écrivait
news:428c01c42b93$49e77930$:

Dim tabcorrel

ReDim tabcorrel(0, 0)

//normalement, je boucle sur ce qui suit
//(mon recordset "temp" change a chaque iteration)

temp.MoveLast
longueur = temp.RecordCount

nbcol = UBound(tabcorrel, 2) + 1
ReDim Preserve tabcorrel(0 To (longueur), 0 To nbcol)
tabcorrel(0, nbcol) = nom
i = 1
temp.MoveFirst
Do Until temp.EOF
tabcorrel(i, nbcol) = temp!valeur
i = i + 1
temp.MoveNext
Loop

voila mon code, en sachant que temp est un recordset
qui


contient des double, et que longueur correspond a la
taille du recordset.(qui est tjs la meme cad 43)

Ca plante sur le redim preserve... j'ai l'erreur :
"indice en dehors de la plage", dès le premier passage.

merci de m'aider une fois de plus
:-)


-----Message d'origine----- re,

je te fais passer un petit exemple, il fait suite à ta
premiere



demande. Donc j'ai mis en ligne 0 du texte à la colonne
0




Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) '
Agrandissement sur les



colonnes tablo(i, 0) = i: tablo(i, 1) = 2 * i:
tablo(i, 1 + i)



= 3 * i
Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre la
taille 'de la 2e



dimension (colonne)
Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre
dexecution pour voir le



résultat.

A+
Eric

"pierref"
écrivait



news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis
dans une boucle.





le nb de lignes et fixe, par contre , j'aimerais
connaitre




son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



.





.






Avatar
Eric
dim tabcorrel() au lieu de dim tabcorrel

par contre tu peux pas me filer 2 exemples de recordset* bidon pour que
je vois ce qui va pas pas car à la lecture je vois rien de particulier

Eric

Au pire indiques moi la gueule qu'ont tes recordset car c'est très flou
vu d'ici.

"pierref" écrivait
news:45b701c42b9a$a8c6df20$:

en fait je peux pas te la faire passer...
c'est plutot confidentiel. malheureusement.

J'ai fait du pas a pas mais y'a rien d'incohérent :
longueur et nbcol ne sont pas à 0 lors du plantage.

Sinon, tu ne vois rien de faux dans le bout de code que
j'ai mis dans le message précédent ?

En tout cas merci bcp

a+

-----Message d'origine-----
Est ce génant si tu me fais passer ta base avec juste ce qu'il faut
pour faire le traitement, à savoir la source de tes recordsets car là
faut mettre des points d'arrêt dans la procédure et faire du pas à
pas. Laisses ta proc je regarderai comment elle tourne pour adapter.

Si c'est pas confidentiel, tu peux m'envoyer ca a mon adresse en
enlevant les ZZ. Base en zip ou rar

Ok ?
Eric

"pierref" écrivait
news:428c01c42b93$49e77930$:

Dim tabcorrel

ReDim tabcorrel(0, 0)

//normalement, je boucle sur ce qui suit
//(mon recordset "temp" change a chaque iteration)

temp.MoveLast
longueur = temp.RecordCount

nbcol = UBound(tabcorrel, 2) + 1
ReDim Preserve tabcorrel(0 To (longueur), 0 To nbcol)
tabcorrel(0, nbcol) = nom
i = 1
temp.MoveFirst
Do Until temp.EOF
tabcorrel(i, nbcol) = temp!valeur
i = i + 1
temp.MoveNext
Loop

voila mon code, en sachant que temp est un recordset qui
contient des double, et que longueur correspond a la
taille du recordset.(qui est tjs la meme cad 43)

Ca plante sur le redim preserve... j'ai l'erreur :
"indice en dehors de la plage", dès le premier passage.

merci de m'aider une fois de plus
:-)


-----Message d'origine----- re,

je te fais passer un petit exemple, il fait suite à ta premiere
demande. Donc j'ai mis en ligne 0 du texte à la colonne 0

Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) ' Agrandissement sur les
colonnes tablo(i, 0) = i: tablo(i, 1) = 2 * i: tablo(i, 1 +
i) = 3 * i
Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre la taille 'de la
2e dimension (colonne)
Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre dexecution pour voir
le résultat.

A+
Eric

"pierref" écrivait
news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis dans une
boucle.

le nb de lignes et fixe, par contre , j'aimerais connaitre
son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



.





.









Avatar
pierref
enfin !
ca y est, apres une seance de debug...
le pb (et tu m'avais prévenu) vient du fait que la 1ere
dimension n'est pas re-dimensionnable.
Du coup je la fixe au premier passage que je detecte par
un booleen.

Merci pour tt

a+


-----Message d'origine-----
Est ce génant si tu me fais passer ta base avec juste ce
qu'il faut pour

faire le traitement, à savoir la source de tes recordsets
car là faut

mettre des points d'arrêt dans la procédure et faire du
pas à pas.

Laisses ta proc je regarderai comment elle tourne pour
adapter.


Si c'est pas confidentiel, tu peux m'envoyer ca a mon
adresse en enlevant

les ZZ. Base en zip ou rar

Ok ?
Eric

"pierref" écrivait
news:428c01c42b93$49e77930$:

Dim tabcorrel

ReDim tabcorrel(0, 0)

//normalement, je boucle sur ce qui suit
//(mon recordset "temp" change a chaque iteration)

temp.MoveLast
longueur = temp.RecordCount

nbcol = UBound(tabcorrel, 2) + 1
ReDim Preserve tabcorrel(0 To (longueur), 0 To nbcol)
tabcorrel(0, nbcol) = nom
i = 1
temp.MoveFirst
Do Until temp.EOF
tabcorrel(i, nbcol) = temp!valeur
i = i + 1
temp.MoveNext
Loop

voila mon code, en sachant que temp est un recordset
qui


contient des double, et que longueur correspond a la
taille du recordset.(qui est tjs la meme cad 43)

Ca plante sur le redim preserve... j'ai l'erreur :
"indice en dehors de la plage", dès le premier passage.

merci de m'aider une fois de plus
:-)


-----Message d'origine----- re,

je te fais passer un petit exemple, il fait suite à ta
premiere



demande. Donc j'ai mis en ligne 0 du texte à la colonne
0




Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) '
Agrandissement sur les



colonnes tablo(i, 0) = i: tablo(i, 1) = 2 * i:
tablo(i, 1 + i)



= 3 * i
Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre la
taille 'de la 2e



dimension (colonne)
Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre
dexecution pour voir le



résultat.

A+
Eric

"pierref"
écrivait



news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis
dans une boucle.





le nb de lignes et fixe, par contre , j'aimerais
connaitre




son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



.





.






Avatar
Eric
Parfait, j'avais pas vu dans le code et pourtant suffisait de lire la
2eme ligne puis la ligne du Redim Preserve

arf, c'est pas toujours évident de debuger ;))

A+
Eric


"pierref" écrivait
news:453e01c42b9e$ac86a970$:

enfin !
ca y est, apres une seance de debug...
le pb (et tu m'avais prévenu) vient du fait que la 1ere
dimension n'est pas re-dimensionnable.
Du coup je la fixe au premier passage que je detecte par
un booleen.

Merci pour tt

a+


-----Message d'origine-----
Est ce génant si tu me fais passer ta base avec juste ce qu'il faut
pour faire le traitement, à savoir la source de tes recordsets car là
faut mettre des points d'arrêt dans la procédure et faire du pas à
pas. Laisses ta proc je regarderai comment elle tourne pour adapter.

Si c'est pas confidentiel, tu peux m'envoyer ca a mon adresse en
enlevant les ZZ. Base en zip ou rar

Ok ?
Eric

"pierref" écrivait
news:428c01c42b93$49e77930$:

Dim tabcorrel

ReDim tabcorrel(0, 0)

//normalement, je boucle sur ce qui suit
//(mon recordset "temp" change a chaque iteration)

temp.MoveLast
longueur = temp.RecordCount

nbcol = UBound(tabcorrel, 2) + 1
ReDim Preserve tabcorrel(0 To (longueur), 0 To nbcol)
tabcorrel(0, nbcol) = nom
i = 1
temp.MoveFirst
Do Until temp.EOF
tabcorrel(i, nbcol) = temp!valeur
i = i + 1
temp.MoveNext
Loop

voila mon code, en sachant que temp est un recordset qui
contient des double, et que longueur correspond a la
taille du recordset.(qui est tjs la meme cad 43)

Ca plante sur le redim preserve... j'ai l'erreur :
"indice en dehors de la plage", dès le premier passage.

merci de m'aider une fois de plus
:-)


-----Message d'origine----- re,

je te fais passer un petit exemple, il fait suite à ta premiere
demande. Donc j'ai mis en ligne 0 du texte à la colonne 0

Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) ' Agrandissement sur les
colonnes tablo(i, 0) = i: tablo(i, 1) = 2 * i: tablo(i, 1 +
i) = 3 * i
Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre la taille 'de la
2e dimension (colonne)
Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre dexecution pour voir
le résultat.

A+
Eric

"pierref" écrivait
news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis dans une
boucle.

le nb de lignes et fixe, par contre , j'aimerais connaitre
son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



.





.









Avatar
pierref
j'imagine que c'est flou...
en fait les recordset sont des colonnes de double. (ce
sont des valeurs d'historique)
a chaque iteration, je recupere une colonne et je l ajoute
dans mon tabcorrel (en fait pas a tous les coups justement)

Mais finalement le pb est résolu, tu m'avais prévenu en
plus ... la 1ere colonne n'est pas redimensionnable.

du coup je detecte le premier passage avec un booleen et
je fixe un int sur le longueur du premier enr.
ensuite a chaque passage, je redimensionne avec cet int en
incrementant le nb de colonnes.

Merci pour tt et a+


-----Message d'origine-----
dim tabcorrel() au lieu de dim tabcorrel

par contre tu peux pas me filer 2 exemples de recordset*
bidon pour que

je vois ce qui va pas pas car à la lecture je vois rien
de particulier


Eric

Au pire indiques moi la gueule qu'ont tes recordset car
c'est très flou

vu d'ici.

"pierref" écrivait
news:45b701c42b9a$a8c6df20$:

en fait je peux pas te la faire passer...
c'est plutot confidentiel. malheureusement.

J'ai fait du pas a pas mais y'a rien d'incohérent :
longueur et nbcol ne sont pas à 0 lors du plantage.

Sinon, tu ne vois rien de faux dans le bout de code que
j'ai mis dans le message précédent ?

En tout cas merci bcp

a+

-----Message d'origine-----
Est ce génant si tu me fais passer ta base avec juste
ce qu'il faut



pour faire le traitement, à savoir la source de tes
recordsets car là



faut mettre des points d'arrêt dans la procédure et
faire du pas à



pas. Laisses ta proc je regarderai comment elle tourne
pour adapter.




Si c'est pas confidentiel, tu peux m'envoyer ca a mon
adresse en



enlevant les ZZ. Base en zip ou rar

Ok ?
Eric

"pierref"
écrivait



news:428c01c42b93$49e77930$:

Dim tabcorrel

ReDim tabcorrel(0, 0)

//normalement, je boucle sur ce qui suit
//(mon recordset "temp" change a chaque iteration)

temp.MoveLast
longueur = temp.RecordCount

nbcol = UBound(tabcorrel, 2) + 1
ReDim Preserve tabcorrel(0 To (longueur), 0 To nbcol)
tabcorrel(0, nbcol) = nom
i = 1
temp.MoveFirst
Do Until temp.EOF
tabcorrel(i, nbcol) = temp!valeur
i = i + 1
temp.MoveNext
Loop

voila mon code, en sachant que temp est un recordset
qui




contient des double, et que longueur correspond a la
taille du recordset.(qui est tjs la meme cad 43)

Ca plante sur le redim preserve... j'ai l'erreur :
"indice en dehors de la plage", dès le premier
passage.





merci de m'aider une fois de plus
:-)


-----Message d'origine----- re,

je te fais passer un petit exemple, il fait suite à
ta premiere





demande. Donc j'ai mis en ligne 0 du texte à la
colonne 0






Sub test1()
Dim tablo() ' Declaration d'un tableau dynamique
ReDim tablo(10, 1) 'Dimensions initiales
tablo(0, 0) = "blabla"
For i = 1 To 9
ReDim Preserve tablo(10, 1 + i) '
Agrandissement sur les





colonnes tablo(i, 0) = i: tablo(i, 1) = 2 *
i: tablo(i, 1 +





i) = 3 * i
Next i
For i = 0 To 9
For j = 0 To UBound(tablo, 2) 'pour connaitre
la taille 'de la





2e dimension (colonne)
Debug.Print tablo(i, j),
Next j
Debug.Print
Next i
End Sub

Copies ca dans un module et affiche la fenêtre
dexecution pour voir





le résultat.

A+
Eric

"pierref"
écrivait





news:441601c42b8a$594594b0$:

bonjour,

je declare un tableau en variant et je le remplis
dans une






boucle.

le nb de lignes et fixe, par contre , j'aimerais
connaitre






son nb de colonnes pour faire dans la boucle :

redim preserve tableau( , nbcolonnes+1)

//je suis meme pas sur du blanc avant la virgule ...

merci de m'aider !

a+



.





.





.