RéInitialiser un tableau

Résolu/Fermé
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 - 19 mai 2008 à 21:35
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 - 20 mai 2008 à 17:26
Bonjour,

Dans ma macro j'utilise une boucle FOR.
Dans cette boucle se trouve un tableau. Dim tableau(2) as integer
Le problème c'est que je ne sait pas comment remettre le remettre le tableau à neuf... enfin effacer les données qui sont à l'intérieur pour pouvoir le réutiliser.

J'ai essayé de mettre à la fin du code
tableau(0)=0
tableau(1)=0
tableau(2)=0
Mais le résultat obtenue avec cette manip n'est pas celle souhaité..
J'espère avoir été clair
++ all
A voir également:

10 réponses

Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
19 mai 2008 à 23:14
Bonjour,
Erase tableau devrait vider ta variable.
I.
0
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 3
20 mai 2008 à 08:36
Tu veux dire que je n'ajoute rien au code alors ??
J'ai déjà essayé mais en faite lorsque la boucle change de valeur le tableau garde les mêmes valeurs que celle précédemment. Je le visualise le contenue du tableau avec le MsgBox.

je ne sai pas trop quoi faire ...


+
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 608
20 mai 2008 à 08:38
Erase tableau, comme indiqué plus haut, devrait te le vider...
0
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 3
20 mai 2008 à 08:47
Excuse moi alors je me suis mal expliqué
je ne sais pas comment on fait pour écraser un tableau.
Peut tu m'expliquer stp !!

merci d'avance ^^
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
20 mai 2008 à 09:48
Bonjour,
j'ai l'impression qu'on tourne en rond.
Dans ton code, au début ou à la fin de ta boucle FOR (à toi de juger), rajoute l'instruction suivante :

Erase tableau

Cette instruction va vider ta variable "tableau()" de ses valeurs. Est-ce ça que tu entends par "écraser un tableau" ?
A suivre...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 3
20 mai 2008 à 09:58
Ah le code c'était > Erase tableau
^^ j'ai trop mal enfin bref...
j'ai fait des test en mettant "Erase tableau" au début et ensuite à la fin de la boucle FOR mais j'ai remarqué que lors du 2ieme passage dans la boucle FOR toutes les valeurs du tableau sont à 0 ...

zut !
0
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 3
20 mai 2008 à 14:03
^^ Re!


Hmmmmm ce n'est pas normale que j'ai 0 quand je fais
Erase tableau
..?
Quelqu'un saurai quoi faire ?

MErci !!
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
20 mai 2008 à 15:52
... que tu aies 0 où ? que veux-tu dire, au juste ?
0
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 3
20 mai 2008 à 16:26
J'obtiens 0 sur la Msgbox au 2ieme tour de la boucle FOR

Voila la partie dla marco :
Sub retouressai()
Dim n_turbine As Integer
Dim tableau(10) As Integer
Dim count_tableau As Integer
Dim i As Integer
Dim n_ligne_debut_status As Integer


For n_turbine = 1 To 2 Step 1
'For count_tableau = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
For count_tableau = Cells(65536, 2).End(xlUp).Row To 1 Step -1
    If Cells(count_tableau, 2).Value = n_turbine & ")" Then
        tableau(i) = Cells(count_tableau, 2).Row
        i = i + 1
    End If
Next count_tableau
    

n_ligne_debut_status = tableau(1)
n_ligne_fin_status = n_ligne_debut_status

MsgBox n_ligne_debut_status Erase tableau
Next n_turbine
End Sub

Au premier tour dans la boucle la msgbox retourne les bonnes valeurs
MAIS AU 2ieme tour la Msgbox affiche 0
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
20 mai 2008 à 16:57
Salut,
la question devient un peu plus claire quand tu donnes ton code en exemple !

Au 2è tour (avec n_turbine = 2), tu obtiens n_ligne_debut_status = 0, parce que ta variable i n'est pas réinitialisée entre les deux tours. Comme ta variable tableau() est alimentée à partir de i et que i est déjà supérieur à 1, n_ligne_debut_status = tableau(1) n'est pas valorisé, il reste à zéro.
Après
Erase tableau

il faudrait ajouter
i = 0

A suivre...
0
jijudu Messages postés 211 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 3 septembre 2009 3
20 mai 2008 à 17:26
eh bé OUiiiiiiiiiiii

tu as raison!
J'ai apporté les modifications qui s'y imposées. Cela a rendu le fonctionnement de la macro correct.

Allez @++
Merci encore Ivan-hoe
0