Signaler

VBA Excel

Posez votre question oceane_vi - Dernière réponse le 20 mai 2017 à 13:24 par yg_be
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 
Utile
+0
plus moins
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 12Messages 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..
Répondre
Donnez votre avis
Utile
+0
plus moins
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 12Messages 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 ..
Répondre
Donnez votre avis
Utile
+0
plus moins
bonjour à tous


la variable "quotient" est égale à ?????
michel_m 14765Messages postés lundi 12 septembre 2005Date d'inscription ContributeurStatut 26 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
Répondre
oceane_vi 12Messages 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
Répondre
yg_be 2238Messages postés lundi 9 juin 2008Date d'inscription 26 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?
Répondre
oceane_vi 12Messages postés lundi 7 novembre 2016Date d'inscription 20 mai 2017 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
Répondre
yg_be 2238Messages postés lundi 9 juin 2008Date d'inscription 26 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.
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !