VBA Excel

oceane_vi - 20 mai 2017 à 10:50 - Dernière réponse : yg_be 4406 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention
- 20 mai 2017 à 13:24
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



Afficher la suite 

11 réponses

Répondre au sujet
yg_be 4406 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention - 20 mai 2017 à 11:11
0
Utile
1
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?
oceane_vi 12 Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 Dernière intervention - 20 mai 2017 à 11:22
Voila mon fichier
http://www.cjoint.com/c/GEujwettkKU

Je suis désolée je suis un peu perdu, je m'y connais pas trop en VBA..
Commenter la réponse de yg_be
yg_be 4406 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention - 20 mai 2017 à 11:39
0
Utile
1
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?
oceane_vi 12 Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 Dernière intervention - 20 mai 2017 à 11:43
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 ..
Commenter la réponse de yg_be
michel_m 14978 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 22 janvier 2018 Dernière intervention - 20 mai 2017 à 11:49
0
Utile
6
bonjour à tous


la variable "quotient" est égale à ?????
michel_m 14978 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 22 janvier 2018 Dernière intervention > oceane_vi 12 Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 Dernière intervention - 20 mai 2017 à 11:56
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
oceane_vi 12 Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 Dernière intervention - 20 mai 2017 à 11:58
Le quotient c'est le revenu imposable / nombre de parts
yg_be 4406 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention > oceane_vi 12 Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 Dernière intervention - 20 mai 2017 à 12:30
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?
oceane_vi 12 Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 Dernière intervention > yg_be 4406 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention - 20 mai 2017 à 12:43
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
yg_be 4406 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention > oceane_vi 12 Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 Dernière intervention - 20 mai 2017 à 13:24
Ne devrais-tu pas assigner une valeur à la variable Parts? VBA ne fait que ce que tu as programmé, et tu n'as donné aucune instruction pour assigner une valeur à Parts. Je te suggère de relire ton programme et de te demander ce que fait réellement chaque instruction.
je te suggère d'ajouter
option explicit
avant la déclaration de ta fonction.
lis ceci: http://silkyroad.developpez.com/VBA/DebuterMacros/
puis met un point d’arrêt en début de fonction, et exécute pas à pas, tu pourras voir les valeurs de chaque variable.
Commenter la réponse de michel_m