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
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Excel compter cellule couleur sans vba - Guide
- Arreter une macro vba ✓ - Forum VB / VBA
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...