Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim cod As String 'déclare la variable cod (CODe CPTC)
Dim sc1 As Double, sc2 As Double 'déclare les variables sc1 et sc2 (Somme Crédits)
Dim sd1 As Double, sd2 As Double 'déclare les variables sd1 et sd2 (Somme Débits)
Dim dif1 As Double, dif2 As Double 'déclare les variables dif1 et dif2 (DIFférences débits - crédits)
'boucle sur toutes les cellules éditées cel de la colonne E
For Each cel In Range("E2:E" & Range("E65536").End(xlUp).Row)
cod = CStr(Left(cel.Value, 3)) 'extrait les trois premiers caractères du compte CPTC
Select Case cod 'agit en fonction du cod
Case "401", "404", "408" 'cas "401", "404" et "408"
'condition : si la date est inférieure ou égale au 31 janvier 2010
If cel.Offset(0, 2).Value <= CDate("31/01/2010") Then
'si la colonne "SENS" est un crédit, actualise la somme des crédits sc1
If cel.Offset(0, -1).Value = "C" Then sc1 = sc1 + CDbl(cel.Offset(0, 3).Value)
'si la colonne "SENS" est un débit, actualise la somme des débits sd1
If cel.Offset(0, -1).Value = "D" Then sd1 = sd1 + CDbl(cel.Offset(0, 3).Value)
End If 'fin de la condition
'condition : si la date est inférieure ou égale au 28/02/2010 janvier 2010
If cel.Offset(0, 2).Value <= "28/02/2010" Then
'si la colonne "SENS" est un crédit, actualise la somme des crédits sc2
If cel.Offset(0, -1).Value = "C" Then sc2 = sc2 + CDbl(cel.Offset(0, 3).Value)
'si la colonne "SENS" est un débit, actualise la somme des débits sd2
If cel.Offset(0, -1).Value = "D" Then sd2 = sd2 + CDbl(cel.Offset(0, 3).Value)
End If 'fin de la condition
End Select 'fin de l'action en fonction de...
Next cel 'prochaine cellule de cel de la boucle
dif1 = sd1 - sc1: dif2 = sd2 - sc2 'définit les variables dif1 et dif2
'place les valeurs dans le classeur
Workbooks("BFR 202010-2009.xls").Sheets("Feuil1").Range("C8").Value = dif1
Workbooks("BFR 202010-2009.xls").Sheets("Feuil1").Range("C18").Value = dif2
End Sub