Macro - VBA
Oceane_vi
-
Oceane_vi -
Oceane_vi -
Bonjour,
Voici ma macro que je suis en train de réaliser :
Mais quand je souhaite l'éxécuter il me dit : Erreur de compilation : End Sub attendus ...
Je ne comprends pas trop, sachant que j'ai mis mon End Sub
Voici ma macro que je suis en train de réaliser :
Sub calcul() Function CalculImpot(revenus As Double) As Double 'Déclaration Dim Seuil1, Seuil2, Seuil3, Seuil4, Taux1, Taux2, Taux3, Taux4, Taux5 As Double Dim impots As Double Dim revenus As Double 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 revenues = Range("revenus").Value 'Début de mon programme impots = Range("B5").Value For i = 1 To impots If revenus < Seuil1 Then impots = revenus * Taux1 Else If revenues < Seuil2 Then impots = (Seuil1 * Taux1) + ((revenus - Seuil1) * Taux2) Else If revenues < Seuil3 Then impots = (Seuil1 * Taux1) + ((Seuil2 - Seuil1) * Taux2) + ((revenues - Seuil2) * Taux3) Else If revenues < Seuil4 Then impots = (Seuil1 * Taux1) + ((Seuil2 - Seuil1) * Taux2) + ((Seuil3 - Seuil2) * Taux3) + ((revenues - Seuil3) * Taux4) Else impots = (Seuil1 * Taux1) + ((Seuil2 - Seuil1) * Taux2) + ((Seuil3 - Seuil2) * Taux3) + ((Seuil4 - Seuil3) * Taux4) + ((revenues - Seuil4) * Taux5) End If End If End If End If Next CalculImpot = impots End Function End Sub
Mais quand je souhaite l'éxécuter il me dit : Erreur de compilation : End Sub attendus ...
Je ne comprends pas trop, sachant que j'ai mis mon End Sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Macro - VBA
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonjour, tu as imbriqué une fonction dans une procédure.
Il faut choisir !
A+
Sub calcul()
Function CalculImpot(revenus As Double) As Double
....
End Function
End Sub
Il faut choisir !
A+
Bonjour,
Tout a fait normale
Faut choisir Function ou Sub mais pas les deux
Tout a fait normale
Sub calcul() Function CalculImpot(revenus As Double) As Double End Function End Sub
Faut choisir Function ou Sub mais pas les deux
Re,
=CalculImpot(revenus)
Normalemenr une fonction appelee d'une cellule avec parametre(s) doit avoir entre parentheses soit l'adresse d'une cellule, un nom de cellule ou autres
A l'origine votre fonction est un Sub donc il y a des modifs a faire. Ceci dit, comprends pas la boucle for next ,alors que revenues ne change pas
Vous pourriez mettre un fichier a dispo sans donnees sensibles.
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
=CalculImpot(revenus)
Normalemenr une fonction appelee d'une cellule avec parametre(s) doit avoir entre parentheses soit l'adresse d'une cellule, un nom de cellule ou autres
A l'origine votre fonction est un Sub donc il y a des modifs a faire. Ceci dit, comprends pas la boucle for next ,alors que revenues ne change pas
Vous pourriez mettre un fichier a dispo sans donnees sensibles.
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...