VBA : utiliser une boucle for each avec un tableau

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

Pour parcourir une variable tableau , on utilise toujours des boucles for to :

for i=1 to ubound(tablo)

je cherche à remplacer ces boucles par des boucles for each, mais je suis confronté à un problème.

comment incrémenter le numéro de ligne dans la boucle.

ci dessous un code, celui-ci fonctionne, mais je cherche à éliminer les i=i+1 de chaque boucle for each.

ce type de code ne fonctionne pas :

for each element in tablo
element=element*2
next element

je ne pense pas que mon problème soit solutionnable, mais bon si je pose pas la question je n'en n'aurais pas la confirmation.


Dim tablo(1 To 10) As Byte
Dim i As Byte
Dim element


For i = 1 To 10
        tablo(i) = i * 6
Next i

i = 0

For Each element In tablo
        i = i + 1
        tablo(i) = element * 2
Next element

i = 0

For Each element In tablo
        i = i + 1
        Cells(i, 1) = element
Next element

en vous remerciant de votre attention, et de votre aide futur.

salut
 

Hervé

XLDnaute Barbatruc
Re:VBA : utiliser une boucle for each avec un tabl

re pascal, salut josé

hélas josé, je crois bien que l'on va te contredire, mais ca marche pas

rajoute en fin de code :

Debug.Print tablo(1)

et tu verras que ton tableau n'a pas changé.

salut
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re:VBA : utiliser une boucle for each avec un tabl

RE

2 ZOP pour la même question tu fais fort José :)

car ta mcro marche car tu as 1 dans le tablo(1) 2 dans le tablo(2) ....

mais essaies

Sub test()
Dim tablo(1 To 3) As Byte
Dim el
tablo(1) = 2
tablo(2) = 4
tablo(3) = 6

For Each el In tablo
tablo(el) = tablo(el) * 2
Debug.Print tablo(el)
Next el
End Sub

Et tu verras que ça ne marche pas car le el c'est la valeur et non l'index du tablo

:( :unsure: :eek: :silly: :whistle: :eek:
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re:VBA : utiliser une boucle for each avec un tabl

Re

Qu'il est beau le ZOP qu'il est beau.

José le but du jeu c'est souvent justement de passer par une variable tableau pour gagner du temps et donc eviter de boucler sur des range, ce qui est beaucoup plus long.

On avait d'ailleurs fait des tests il ya quelques mois et franchemetn il n'y a pas photo c'est beaucoup beaucoup plus rapide avec un tableau de variable

Bonne journée
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re:VBA : utiliser une boucle for each avec un tabl

Re

OK José pas de problèmes pour cela en un rien de temps c'est transposé et en rien de temps tu recuperes mais ce qui va être long c'est le for each sur les Range, et c'est là que la perte de temps est considérable
 

Hervé

XLDnaute Barbatruc
Re:VBA : utiliser une boucle for each avec un tabl

Salut les gars :)

j'aodre vos signatures du moment

bon, josé j'ai pas tout compris a ce que tu voulais me faire faire.

l'objectif de ma question, c'est : utiliser une boucle for each sur une variable tableau.

2 résultats attendus : plus de lisibiliter dans le code, et gagner un peu en vitesse (remarque, ca ca reste à prouver).

je suis pas sur qu'en passant par une variable range je sois gagnant.

Range('a1').Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo

mais si tu pouvais m'expliquer par un code exemple, ce que tu veux dire, peut etre que la lumiere se ferait en moi.

salut
:)

Hervé [Spécialiste de question à la c.n, pour faire ch..r ses potes pascal et josé]

Message édité par: hervé, à: 30/03/2006 14:11
 

Discussions similaires

Réponses
4
Affichages
135

Statistiques des forums

Discussions
311 733
Messages
2 082 008
Membres
101 864
dernier inscrit
elrecruiter