1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Private Sub CommandButton1_Click()
Dim Ventes As Double, Achats As Double, Salaires As Double
Dim FraisFixes As Double, Benefice As Double, Rentabilite As Double
Dim Annee As Variant
Dim c As Range
Dim N As Long
Annee = InputBox("L'année désirée est: ")
If Val(Annee) > 0 Then
Set c = Sheets("Resultat").Range("B:B").Find(Annee, LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
With Sheets("Ventes")
N = .Cells(.Rows.Count, "E").End(xlUp).Row 'Ligne de la dernière cellule remplie de la colonne E de la feuille ventes
End With
Ventes = Evaluate("SUMPRODUCT((Year(Ventes!E2:E" & N & ")=" & Annee & ")*(Ventes!F2:F" & N & "))")
With Sheets("Achats")
N = .Cells(.Rows.Count, "E").End(xlUp).Row
End With
Achats = Evaluate("SUMPRODUCT((Year(Achats!E2:E" & N & ")=" & Annee & ")*(Achats!F2:F" & N & "))")
Salaires = Application.Sum(Sheets("Employes").Range("J:J"))
FraisFixes = 350000
Benefice = Ventes - (Achats + Salaires + FraisFixes)
Select Case Benefice
Case Is > 150000: Rentabilite = 0.33 * Benefice
Case Is > 0: Rentabilite = 0.15 * Benefice
Case Else: Rentabilite = Benefice
End Select
With Sheets("Resultat")
N = .Cells(.Rows.Count, "A").End(xlUp).Row 'Ligne de la dernière cellule remplie de la colonne A de la feuille Resultat
.Range("A" & N + 1).Value = Rentabilite
.Range("B" & N + 1).Value = Annee
.Range("C" & N + 1).Value = Date
End With
Else
MsgBox "Le calcul a déjà été effectué pour l'année " & Annee
Set c = Nothing
End If
End If
End Sub |