Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim cod As String 'déclare la variable cod (CODe CPTC)
[COLOR=red]Dim ong As Worksheet 'déclare la variable ong (ONGlet)[/COLOR]
'déclare les variables sc1 à sc12 (Somme Crédits)
Dim sc1 As Double, sc2 As Double, sc3 As Double, sc4 As Double, sc5 As Double, sc6 As Double
Dim sc7 As Double
', sc8 As Double, sc9 As Double, sc10 As Double, sc11 As Double, sc12 As Double
'déclare les variables sd1 à sd12 (Somme Débits)
Dim sd1 As Double, sd2 As Double, sd3 As Double, sd4 As Double, sd5 As Double, sd6 As Double
Dim sd7 As Double
', sd8 As Double, sd9 As Double, sd10 As Double, sd11 As Double, sd12 As Double
'déclare les variables dif1 et dif2 (DIFférences débits - crédits)
Dim dif1 As Double, dif2 As Double, dif3 As Double, dif4 As Double, dif5 As Double, dif6 As Double
Dim dif7 As Double
', dif8 As Double, dif9 As Double, dif10 As Double, dif11 As Double, dif12 As Double
[COLOR=red]For Each ong In Sheets 'boucle sur tous les onglets du classeur[/COLOR]
[COLOR=red] If ong.Range("E2") <> "" Then 'condition1 : si la cellule E2 n'est pas vide[/COLOR]
'boucle sur toutes les cellules éditées cel de la colonne E
For Each cel In [COLOR=red]ong.[/COLOR]Range("E2:E" & [COLOR=red]ong.[/COLOR]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 février 2010
If cel.Offset(0, 2).Value <= CDate("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
'condition : si la date est inférieure ou égale au 31 mars 2010
If cel.Offset(0, 2).Value <= CDate("31/03/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 sc3 = sc3 + 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 sd3 = sd3 + CDbl(cel.Offset(0, 3).Value)
End If 'fin de la condition
'condition : si la date est inférieure ou égale au 30 avril 2010
If cel.Offset(0, 2).Value <= CDate("30/04/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 sc4 = sc4 + 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 sd4 = sd4 + CDbl(cel.Offset(0, 3).Value)
End If 'fin de la condition
'condition : si la date est inférieure ou égale au 31 mai 2010
If cel.Offset(0, 2).Value <= CDate("31/05/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 sc5 = sc5 + 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 sd5 = sd5 + CDbl(cel.Offset(0, 3).Value)
End If 'fin de la condition
'condition : si la date est inférieure ou égale au 30 juin 2010
If cel.Offset(0, 2).Value <= CDate("30/06/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 sc6 = sc6 + 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 sd6 = sd6 + CDbl(cel.Offset(0, 3).Value)
End If 'fin de la condition
'condition : si la date est inférieure ou égale au 31 juillet 2010
If cel.Offset(0, 2).Value <= CDate("31/07/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 sc7 = sc7 + 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 sd7 = sd7 + 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
[COLOR=red] End If 'fin de la condition1[/COLOR]
[COLOR=red]Next ong 'prochain onglet de la boucle[/COLOR]
'définit les variables dif1 à dif12
dif1 = sc1 - sd1
dif2 = sc2 - sd2
dif3 = sc3 - sd3
dif4 = sc4 - sd4
dif5 = sc5 - sd5
dif6 = sc6 - sd6
dif7 = sc7 - sd7
': dif8 = sc8 - sd8: dif9 = sc9 - sd9: dif10 = sc10 - sd10: dif11 = sc11 - sd11: dif12 = sc12 - sd12
'place les valeurs dans le classeur
Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O8").Value = dif1
Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O18").Value = dif2
Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O28").Value = dif3
Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O38").Value = dif4
Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O48").Value = dif5
Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O58").Value = dif6
Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O68").Value = dif7
'Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O78").Value = dif8
'Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O88").Value = dif9
'Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O98").Value = dif10
'Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O108").Value = dif11
'Workbooks("BFR 2010-2009.xls").Sheets("Feuil1").Range("O118").Value = dif12
End Sub