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 : Sélectionner tout - Visualiser dans une fenêtre à part
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