Sub reductionFillon()
Dim salaireAnnuelBrut As Double
Dim nbreHeuresAnnuel As Double
Dim smicHoraireBrut As Double
Dim coefficientMax As Double
Dim effectif As Integer
Dim coefficientAppl As Double
Dim coefficientRetenu As Double
Dim reductionFillon As Double
Dim i As Integer
' Demande à l'utilisateur les informations nécessaires
Do While True
Dim nomSalarié As String
nomSalarié = InputBox("Entrez le nom du salarié (ou tapez STOP pour arrêter) :")
If nomSalarié = "STOP" Then
Exit Do
End If
effectif = InputBox("Entrez l'effectif de l'entreprise :")
salaireAnnuelBrut = InputBox("Entrez le salaire annuel brut :")
nbreHeuresAnnuel = InputBox("Entrez le nombre d'heures annuel :")
smicHoraireBrut = 11.27
' Détermine le coefficient maximal en fonction de l'effectif
If effectif < 50 Then
coefficientMax = 0.3191
Else
coefficientMax = 0.3231
End If
' Calcule le coefficient applicable et le coefficient retenu
coefficientAppl = Round((coefficientMax / 0.6) * ((1.6 * smicHoraireBrut * nbreHeuresAnnuel) / salaireAnnuelBrut - 1), 4)
If coefficientAppl < 0 Then
coefficientRetenu = 0
ElseIf coefficientAppl > coefficientMax Then
coefficientRetenu = coefficientMax
Else
coefficientRetenu = coefficientAppl
End If
If coefficientAppl < 0 Then
reductionFillon = 0
Else
reductionFillon = Round(coefficientRetenu * salaireAnnuelBrut, 2)
End If
' Affiche le résultat
MsgBox "Le montant de la Réduction Fillon est de " & reductionFillon & " euros."
' Construit la table avec les détails
Range("A1:G1") = Array("Effectif entreprise", "Nom", "Salaire annuel brut", "Nbre heures annuel", "Coefficient", "Coefficient retenu", "Réduction Fillon")
Range("A2").Select
i = 2
Do While ActiveCell.Value <> ""
i = i + 1
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = effectif
ActiveCell.Offset(0, 1).Value = nomSalarié
ActiveCell.Offset(0, 2).Value = salaireAnnuelBrut
ActiveCell.Offset(0, 3).Value = nbreHeuresAnnuel
ActiveCell.Offset(0, 4).Value = coefficientAppl
ActiveCell.Offset(0, 5).Value = coefficientRetenu
ActiveCell.Offset(0, 6).Value = reductionFillon
Loop
' Ajuste la taille des colonnes en automatique
Cells.EntireColumn.AutoFit
End Sub