VBA Excel

Fermé
oceane_vi - 20 mai 2017 à 10:50
yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 - 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



3 réponses

yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
20 mai 2017 à 11:11
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 lundi 7 novembre 2016 Statut Membre Dernière intervention 20 mai 2017
Modifié le 20 mai 2017 à 11:27
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 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
20 mai 2017 à 11:39
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 lundi 7 novembre 2016 Statut Membre Dernière intervention 20 mai 2017
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 ..
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 mai 2017 à 11:49
bonjour à tous


la variable "quotient" est égale à ?????
0
oceane_vi Messages postés 12 Date d'inscription lundi 7 novembre 2016 Statut Membre Dernière intervention 20 mai 2017
20 mai 2017 à 11:50
Voici mon fichier, pour répondre à votre question https://www.cjoint.com/c/GEujwettkKU
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > oceane_vi Messages postés 12 Date d'inscription lundi 7 novembre 2016 Statut Membre Dernière intervention 20 mai 2017
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
0
oceane_vi Messages postés 12 Date d'inscription lundi 7 novembre 2016 Statut Membre Dernière intervention 20 mai 2017
20 mai 2017 à 11:58
Le quotient c'est le revenu imposable / nombre de parts
0
yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551 > oceane_vi Messages postés 12 Date d'inscription lundi 7 novembre 2016 Statut Membre Dernière intervention 20 mai 2017
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?
0
oceane_vi Messages postés 12 Date d'inscription lundi 7 novembre 2016 Statut Membre Dernière intervention 20 mai 2017 > yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024
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
0