[E-03] problème code boucle
Bonjour,
Je travaille sur un fichier qui contient 2 onglets :
- 1er onglet = liste d'objets avec notamment une colonne prix et une colonne nom de la personne à qui l'objet est affecté (environ 1500 lignes mais beaucoup sont vides pour l'instant)
- 2ème onglet = liste des noms : certains noms n'ont aucun objet affecté dans l'onglet 1 et d'autres en ont plusieurs voire beaucoup (environ 1000 noms au total mais seulement 300 ont au moins 1 objet affecté)
Voilà ce que je veux afficher dans le 2ème onglet :
- colonne W : nombre d'objets affectés
- colonne Y : prix global
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
For Each nom In zone_nom.Cells
For Each mag In zone_objet.Cells
If nom.Value = objet.Value Then
NB = NB + 1
PRIX= PRIX+ CL.Worksheets("OBJETS").Range("P" & objet.Row).Value
With CL.Worksheets("NOMS")
.Range("W" & nom.Row).Value = NB
.Range("Y" & nom.Row).Value = BRUT
End With
End If
Next
Next |
La macro tourne pendant très longtemps puis message d'erreur dépassement capacité.
c'est vrai que si la macro compare chacune des 1000 lignes à chacune des 1500 lignes, ça prend beaucoup trop de temps.
L'idéal serait qu'elle ne compare "que" les 300 noms de l'onglet 2 qui ont au moins un objet d'affecté aux lignes pour lesquelles la colonne S de l'onglet 1 n'est pas vide.
J'ai voulu essayer d'utiliser un intersect mais je n'ai pas réussi, pouvez-vous m'aider ?
Merci par avance