VBA Excel

oceane_vi -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je réalisé un Function sur Excel pour réaliser le calcul de l'impôt sur le revenu mais celle-ci ne fonctionne pas, je ne comprends pas pourquoi...
Voici ma macro :


Function CalculImpot(Revenus As Double) As Double
Dim Seuil1 As Long, Seuil2 As Long, Seuil3 As Long, Seuil4 As Long
Dim Taux1 As Double, Taux2 As Double, Taux3 As Double, Taux4 As Double, Taux5 As Double
Dim Quotient As Single
Dim Parts As Single

Seuil1 = Range("Seuil1").Value
Seuil2 = Range("Seuil2").Value
Seuil3 = Range("Seuil3").Value
Seuil4 = Range("Seuil4").Value
Taux1 = Range("Taux1").Value
Taux2 = Range("Taux2").Value
Taux3 = Range("Taux3").Value
Taux4 = Range("Taux4").Value
Taux5 = Range("Taux5").Value


If Quotient < Seuil1 Then
IMPOTS = Revenus * Taux1
Else

If Quotient < Seuil2 Then
IMPOTS = (Revenus * Taux2) - (1359.4 * Parts)
Else

If Quotient < Seuil3 Then
IMPOTS = (Revenus * Taux3) - (5650.28 * Parts)
Else

If Quotient < Seuil4 Then
IMPOTS = (Revenus * Taux4) - (13559.06 * Parts)
Else

IMPOTS = (Revenus * Taux5) - (19649.46 * Parts)
End If
End If
End If
End If


CalculImpot = IMPOTS




End Function

Si quelqu'un pouvait m'aider à comprendre ce qu'il ne fonctionne pas, ou me proposer un fichier Excel pour le calcul de l’impôt, ça sera vraiment gentil

Merci



3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
peux-tu être plus précise? "cela ne fonctionne pas", c'est un peu flou.
le plus simple serait que tu partages ton fichier.
je te suggère d'ajouter
option explicit
avant la déclaration de ta fonction.
A quoi sert ta variable Quotient? et Parts?
Est-ce ton premier exercice de programmation VBA?
0
oceane_vi Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Voila mon fichier
https://www.cjoint.com/c/GEujwettkKU

Je suis désolée je suis un peu perdu, je m'y connais pas trop en VBA..
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
je pense que ceci ne fonctionne pas:
Seuil1 = Range("Seuil1").Value

Range("Seuil1") n'existe pas.
Est-ce ton premier exercice de programmation VBA? Pourquoi fais-tu cela si tu ne t'y connais pas trop?
0
oceane_vi Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Je fais ce calcul pour mon examen ...

Je viens de renommer mes cellules pour avoir il m' avoir Seuil1...., maintenant il m'affiche 0 en résultat .. même quand je change mes données ..
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour à tous


la variable "quotient" est égale à ?????
0
oceane_vi Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Voici mon fichier, pour répondre à votre question https://www.cjoint.com/c/GEujwettkKU
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > oceane_vi Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
j'avais déjà télécharger

c'est dans ton code que je t'ai demandé comment était déterminé la valeur de "quotient"; dans ton code "quotient" a la valeur 0

je te laisse dans les mains de yg_be que je salue
0
oceane_vi Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Le quotient c'est le revenu imposable / nombre de parts
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > oceane_vi Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Ne devrais-tu pas assigner une valeur à la variable Quotient? et Parts?
Connais-tu la technique pour suivre l'exécution, pas à pas, en VBA?
0
oceane_vi Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
J'ai ajouté Quotient = Range ("Quotient").Value
Ça me calcul l'IR, cependant normalement si je change le nombre de part ça devrai changer mon résultat.. mais non..
Le pas à pas, non je ne connais pas
0