XL 2019 Reformuler plusieurs formules SI

kdet

XLDnaute Occasionnel
Bonjour à tous et à toutes, le forum,

J'ai besoin de votre aide car je n'arrive pas trouver la bonne formule pour associer plusieurs formule SI. Je vous joints mon fichier.

Vous remercions d'avance de votre aide

kdet
 

Pièces jointes

  • Simulation Calcul IRSA.xlsx
    16.6 KB · Affichages: 29

soan

XLDnaute Barbatruc
Inactif
Bonjour kdet, François,

Je propose le fichier Excel ci-joint.

Image.jpg


VB:
Function Impôt(R@) As Currency
  Dim B@, T@, I@, n As Byte
  Do
    With [B4].Offset(n)
      T = .Value: B = WorksheetFunction.Min(T, R)
      I = I + (B - Val(.Offset(-1))) * .Offset(, 1) / 100
    End With
    n = n + 1
  Loop Until R < T Or T = 0
  Impôt = Round(I, 2)
End Function

soan
 

Pièces jointes

  • Exo kdet.xlsm
    16.2 KB · Affichages: 3

kdet

XLDnaute Occasionnel
re,

Merci Soan pour votre réponse. Méthode rapide avec VBA. peut-être que je me suis mal exprimer. Dans mon fichier j'ai effectué des calculs IRSA à partir d'un tableau (comme dans l'exemple dans mon fichier). mon souci c'est que je n'arrive pas, à partir des formules dans le tableau, tout en reprenant les formules dans l'exemple pour les remettre en ligne (en additionnant ou autres méthodes) car il y a plusieurs salariés.

Merci à vous

kdet
 

soan

XLDnaute Barbatruc
Inactif
@kdet

Comme y'a plusieurs salariés, il suffit de recopier la formule vers le bas. ;) Je te propose d'envoyer un fichier plus représentatif, sans données confidentielles, avec plusieurs salariés dont tu auras mis des données fictives.

Note que mon fichier précédent avec 2 exemples était déjà valable pour 2 salariés, en E7:F8 ; si tu envoies ton fichier, j'essayerai de faire l'adaptation adéquate.​

edit : voilà, c'est fait dans mon post #12. 🙂

soan
 
Dernière édition:

JHA

XLDnaute Barbatruc
Bonjour à tous,

J'ai essayé de n'utiliser que la base imposable en "A3", à vérifier.

VB:
=SI($A$3<350001;2000;SOMMEPROD(({350001;400001;500001;600001}<=$A$3)*(({400000;500000;600000;1000000}<$A$3)*{0,05;0,1;0,15;0,2})*({400000;500000;600000;1000000}-{350001;400001;500001;600001}))+($A$3-INDEX($B$4:$B$7;EQUIV(A3;{350001;400001;500001;600001})))*CHOISIR(EQUIV(A3;{350001;400001;500001;600001});0,05;0,1;0,15;0,2))

JHA
 

Pièces jointes

  • Simulation Calcul IRSA.xlsx
    18.8 KB · Affichages: 2

soan

XLDnaute Barbatruc
Inactif
@kdet

Je te retourne le fichier de ton post #7. 🙂

VB:
Function Impôt(R@) As Currency
  Dim B@, T@, I@, n As Byte
  Do
    With [Simulation!A16].Offset(n)
      T = .Value: B = WorksheetFunction.Min(T, R)
      I = I + (B - Val(.Offset(-1))) * .Offset(, 1) / 100
    End With
    n = n + 1
  Loop Until R < T Or T = 0
  Impôt = Round(I, 2)
End Function

soan
 

Pièces jointes

  • Simulation Calcul IRSA v3.xlsm
    26.7 KB · Affichages: 3
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Vérifiez à tout hasard si cette formule ne donnerait pas le résultat que vous voudriez obenir, le montant à analyser étant supposé en B51 :
En C51 :
Code:
=MAX(2000;5%*$B51-15500;10%*$B51-35500;15%*$B51-60500;20%*$B51-90500)
 

Statistiques des forums

Discussions
312 231
Messages
2 086 430
Membres
103 207
dernier inscrit
Michel67