VBA:difference entre for each et set

bertrand1202

XLDnaute Occasionnel
Bonjour

Dans une macro , lorque je fais for each, la macro fonctionne sans problème,
par contre lorsque je lance par Set Vcellule= range....

la fonction définie ne fonctionne pas , et VBA ne comprend plus les termes de la fonction;

Quand faut il utiliser set pour éviter for each et aklléger le code;

Merci de m'éclairer

Bonne soirée
 

bertrand1202

XLDnaute Occasionnel
Re : VBA:difference entre for each et set

Merci Soenda

je te joins la copie d'une procédure toute simple, j'aimerais essayer d'utiliser set car on ne peut pas utiliser plusieurs for each
merci de ton éclairage
Sub Totalisationtest2() '
Dim Vcellule As Range
Dim c As Byte
'Dim i As Integer
Dim Vsom As Long
For Each Vcellule In Range("A10:A" & Range("A65536").End(xlUp).Row)
For c = 1 To 5
If Vcellule <> "" Then
Vsom = Vsom + Vcellule.Offset(0, c - 1)
End If
Next c
Vcellule.Offset(0, 6) = Vsom
Vsom = 0
Next Vcellule
End Sub
 

ROGER2327

XLDnaute Barbatruc
Re : VBA:difference entre for each et set

Bonsoir à tous
Bonjour

Dans une macro , lorque je fais for each, la macro fonctionne sans problème,
par contre lorsque je lance par Set Vcellule= range....

la fonction définie ne fonctionne pas , et VBA ne comprend plus les termes de la fonction;

Quand faut il utiliser set pour éviter for each et aklléger le code;

Merci de m'éclairer

Bonne soirée
Effectivement, votre code fonctionne parfaitement. Ce que je ne comprends pas, c'est la tentative de substitution de Set... à For Each.... Il me semble a priori que cette substitution ne soit pas possible : pourriez-vous donner le code complet qui ne fonctionne pas ?​
ROGER2327
#1894
 

TooFatBoy

XLDnaute Barbatruc
Re : VBA:difference entre for each et set

Si tu fais un set, tu assignes une plage de cellules à la variable Vcellule.

En revanche, si tu utilises for each, alors tu utilises une boucle.
A chaque tour de la boucle une cellule de la plage de cellules est assignée à la variable Vcellule.
La boucle tourne donc tant qu'il reste une cellule de la plage de cellule qui n'a pas été utilisée.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 186
dernier inscrit
Eliyass