Find() / Do/ While

JC de Lorient

XLDnaute Impliqué
Bonjour le forum
j'ai cette procédure :

Sub analyse_mensuelle()
Application.ScreenUpdating = False
Sheets("Gest Mens").Range("B6:H100").ClearContents
Dim agent, D As Range
Dim a, C, ADRES
For Each agent In Sheets("Données").Range("C2:C" & Sheets("Données").Range("C65536").End(xlUp).Row)
With Sheets("Base").Columns(6)
Set C = .Find(agent)
If Not C Is Nothing Then
ADRES = C.Address
Do
If Month(Sheets("Base").Range(C.Address).Offset(0, -1)) _
= Month(Sheets("Gest Mens").Range("G1")) Then
a = Sheets("Gest Mens").Range("B65536").End(xlUp).Row + 1
Sheets("Gest Mens").Range("B" & a) = agent
Sheets("Gest Mens").Range("C" & a).FormulaR1C1 = "=SUMPRODUCT((Nom_Agent=RC[-1])*(MONTH(Terme)=MONTH(R1C7)))"
Sheets("Gest Mens").Range("D" & a).FormulaR1C1 = "=SUMPRODUCT((Nom_Agent=RC[-2])*(MONTH(Terme)=MONTH(R1C7))*(((Rbst>0)+(Réinvest>0))>0))"
Sheets("Gest Mens").Range("E" & a).FormulaR1C1 = "=SUMPRODUCT((Nom_Agent=RC[-3])*(MONTH(Terme)=MONTH(R1C7))*(Montant))"
Sheets("Gest Mens").Range("F" & a).FormulaR1C1 = "=SUMPRODUCT((Nom_Agent=RC[-4])*(MONTH(Terme)=MONTH(R1C7))*(Réinvest))"
Sheets("Gest Mens").Range("G" & a).FormulaR1C1 = "=SUMPRODUCT((Nom_Agent=RC[-5])*(MONTH(Terme)=MONTH(R1C7))*(Rbst))"
Sheets("Gest Mens").Range("H" & a).FormulaR1C1 = "=RC[-2]/RC[-3]"
End If
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> ADRES
End If
End With
Next
End Sub

Je m'explique
je fais une recherche par "agent" en boucle (en bleu dans le code)
ce que je souhaiterais c'est que lorsque le code en rouge est vérifié la boucle passe a l'agent suivant puisque j'ai besoin que d'une seule concordence pour les SOMMEPROD
je me perdes un peu dans les Do Loop While etc etc...
Peut etre aussi que le code pourrait etre simplifié (suis preneur)
Merci a tous et attention au soleil ! :)
 

Discussions similaires

Réponses
14
Affichages
693

Statistiques des forums

Discussions
312 428
Messages
2 088 333
Membres
103 819
dernier inscrit
vinz_kid