Stockage de nombre dans tableau avec allocation dynamique de la mémoire

Adoc5 Messages postés 53 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 1 octobre 2007 - 5 mai 2004 à 14:10
Adoc5 Messages postés 53 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 1 octobre 2007 - 6 mai 2004 à 07:59
Bonjour tout le monde,

J'ai des valeurs dans un tableau Excel, je veux mettre ces valeurs dans un tableau stocké en mémoire avec allocation dynamique. A partir de là je veux moyenner deux à deux chaques nombres de ce tableau et stocker le résultat dans le même tableau dynamique en écrasant le contenu de la première case. Et tout ceci en VB sous Excel.

Quelqu'un a-t-il une idée ?
Merci d'avance.
:)

2 réponses

FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008
5 mai 2004 à 21:49
Slt
Je vois pas exactement ce que tu veux faire mais je vais tenter de taider!!!!
Pour créer un tableau dinamique tu fais comme ca

dim TonTableau() as string

ensuite quand tu connais le nombre d'entrer a mettre dans ton tableau tu fais ca

redim TonTableau(lenombredentré)

ensuite tu fais une boucle

for i=1 to le_nombre_dentré
tontableau(i)=lavaleur
next i
voila
je sais pas si je répond a ta question
@+
<--FearBlue-->
0
Adoc5 Messages postés 53 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 1 octobre 2007 1
6 mai 2004 à 07:59
Voila ce que j'ai écrit comme code:

' Déclaration de variables
Dim mySheet As Excel.Workbook
Dim iCpt As Integer
Dim iTab As Integer
Dim iTab2 As Integer
Dim monTab() As Long

Set mySheet = Sheet("Sheet1")
iCpt = 1
iTab = 0
iTab2 = 1

' Initialisation de la première ligne du tableau à deux dimensions
ReDim monTab(1, iTab)

' Lecture de la feuille Excel tant que la valeur de la cellule An n'est pas nulle
While mySheet.Range("A" & iCpt) <> ""

' On récupère les valeurs de la cellule A de la ligne iCtp et on les stockes dans monTab
monTab(0, iTab) = mySheet.Range("A" & iCpt)

' Idem pour la cellule B
monTab(1, iTab) = mySheet.Range("B" & iCpt)

' Calcule de la moyenne
monTab(1, iTab) = (monTab(1, iTab) + monTab(1, iTab2)) / 2
iCpt = iCpt + 1
iTab = iTab + 1
iTab2 = iTab2 + 1
ReDim Preserve monTab(1, iTab)
Wend
End Sub

Le programme plante à la ligne suivante (Set mySheet = Sheet("Sheet1")). Quelqu'un peut-iil me dire pourquoi ?
Merci d'avance
:)
0
Rejoignez-nous