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
La macro tourne pendant très longtemps puis message d'erreur dépassement capacité.
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
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
Partager