re carlos
pour pouvoir modifier les dimensions d'un tableau, il te faut d'abord comprendre qu'il y a deux facon de fixer ses dimensions.
soit lors de la déclaration : dim tabtemp (1 to 100) as variant (ton exemple)
soit dynamiquement à travers le code.
si tu la défini dans ta déclaration, tu ne peux plus modifié ses dimensions.
sinon, tu peux le faire à travers l'instruction redim : redim tabtemp (1 to 200), ici je redimenssionne à la hausse le tableau.
le problème du redim, c'est que non seulement il redimensionne mais en plus il efface les données existantes.
pour conserver les données on rajoute preserve, qui veut bien dire sa fonction :
redim preserve tabtemp(1 to 200)
ici, on a redimensionné et garder les valeurs.
pour ton souci (si j'ai bien compris) tu ne peux pas directement retirer une valeur d'un tableau.
il te faut faire une boucle pour 'ecraser' la valeur inutile.
puis redimensionné celui-ci :
Dim i As Integer
Dim TabTemp() As Variant
Columns(1).ClearContents
For i = 1 To 100
ReDim Preserve TabTemp(1 To i)
TabTemp(i) = i
Next
'retire la valeur 12
For i = 13 To 100
TabTemp(i - 1) = TabTemp(i)
Next i
'retire la valeur 78
For i = 78 To 100
TabTemp(i - 1) = TabTemp(i)
Next i
'on redimensionne le tableau
ReDim Preserve TabTemp(1 To 98)
MsgBox UBound(TabTemp) 'pour test
tu vois qu'ici, je n'ai pas dimensionné le tableau lors de sa déclaration, mais dynamiquement dans le code grace à redim preserve.
si tu veux manipuler des données facilement : retirer ou ajouter des valeurs, il existe un autre type de tableau : les collections.
mais ca, c'est une autre histoire.
salut
ps : j'espère ne pas avoir dit trop de c......ies :unsure: