Sub Rectangleàcoinsarrondis2_Cliquer()
Dim S As Object
Dim V As Object
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim R As Range 'déclare la variable R (Recherche)
Dim PA As String 'déclare la variable PA (Première Adresse)
Set S = Sheets("Saisies")
Set V = Sheets("Ventes")
DL = S.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 1 (=A)
Set PL = S.Range("A2:A" & DL) 'définit la plage pl
For Each CEL In PL 'boucle sur toutes les cellule CEL de la plage PL
'si la cellulle en colonne C n'est pas vide et celle en colonne D est vide
If CEL.Offset(0, 2).Value <> "" And CEL.Offset(0, 3).Value = "" Then
CEL.Offset(0, 3).FormulaR1C1 = "=RC[-2]*(1+(RC[-1]/100))" 'formule en colonne D
'si la cellulle en colonne C est pas vide et celle en colonne D n'est pas vide
ElseIf CEL.Offset(0, 2).Value = "" And CEL.Offset(0, 3).Value <> "" Then
CEL.Offset(0, 2).FormulaR1C1 = "=Round((100*RC[1]/RC[-1])-100,2)" 'formule en colonne C
End If 'fin de la condition
Set R = V.Columns(1).Find(CEL.Value, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur de la cellule CEL dans la colonne 1 (=A) de l'onglet V)
If Not R Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
PA = R.Address 'définit l'adresse de la première occurrence trouvée
Do 'exécute
R.Offset(0, 3).Value = CEL.Offset(0, 2).Value 'récupère le coef.
R.Offset(0, 4).Value = CEL.Offset(0, 3).Value 'récupère la prev.
Set R = V.Columns(1).FindNext(R) 'redéfinit la recherche R (occurrence suivante)
Loop While Not R Is Nothing And R.Address <> PA 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en PA
End If 'fin de la condition
Next CEL 'prochaine cellule de la boucle
End Sub