IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Fonction : calculer le dividende net à payer


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut Fonction : calculer le dividende net à payer
    J'ai fait une "analyse" de ce que j'aimerais obtenir mais comme je n'y connais pas grand chose en VBA... Quelqu'un pourrait-il "traduire" ceci???
    Merci d'avance

    Formules

    Nt= Nombre de titres détenus provient d'une requête
    Nst= Nombre de strips détenus provient d'une requête
    Bru= Dividende brut unitaire provient d'une requête
    Txp= Taux plein constante (=25%)
    Txr= Taux réduit constante (=15%)
    Avu= Avantage fiscal unitaire variable calculée
    Net= Dividende net total variable calculée
    Avt= Avantage fiscal total variable calculée
    Tot= Total à payer variable calculée

    Cas où l'actionnaire est exonéré si "exonéré" = OUI alors (Nt*Bru)=Tot
    Détermination du net sans tenir compte de l'avantage fiscal(Nt*Bru)-(Nt*Txp)=Net
    Détermination de l'avantage fiscal unitaire (Bru*Txp)-(Bru*Txr)=Avu
    Cas où il y a autant de strips que de titres si (Nst = Nt) alors (Nst * Avu)=Avt
    Cas où il y a des strips en surnombre si (Nst > Nt) alors (Nt * Avu)=Avt
    Cas où il y a moins de strips que de titres si (Nst < Nt) alors (Nst * Avu)=Avt
    Cas où il n'y a pas de strips si (Nst = 0) alors Avt = 0
    Total à payer à l'actionnaire (ou obligataire) (Net + Avt) = Tot

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Je pensais à un truc comme ça... mais ça marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Function dividende_a_payer&#40;Nt As &#91;R_PAIEMENT DIVIDENDES TITRES&#93;.SommeDeCERT_QTE, nst As &#91;R_PAIEMENT DIVIDENDES STRIPS&#93;.SommeDeCERT_QTE, Bru As &#91;R_PAIEMENT DIVIDENDES TITRES&#93;.TIT_DIVOUINTBRUT, exo As &#91;R_PAIEMENT DIVIDENDES TITRES&#93;.TIE_EXONEREACT&#41;
    Txp = 0.25
    Txr = 0.15
    Net = &#40;Nt * Bru&#41; - &#40;Nt * Txp&#41;
    Avu = &#40;Bru * Txp&#41; - &#40;Bru * Txr&#41;
    If exo = True Then tot = Nt * Bru
    Else
    If nst = Nt Then Avt = &#40;nst * Avu&#41; Else If nst > Nt Then Avt = Nt * Avu
    Else&#58; If nst < Nt Then Avt = nst * Avu Else Avt = 0
    End If
    End If
    End If
    End If
    tot = Net + Avt
    End Function
    Merci de mettre impérativement les balises code | cafeine

  3. #3
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    je suppose que tu veux utiliser cette fonction dans une requête

    alors il faut procéder de la manière suivante:
    dans une colonne de la requête tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dividende&#58; dividende_a_payer&#40; &#91;R_PAIEMENT DIVIDENDES TITRES&#93;.SommeDeCERT_QTE,  &#91;R_PAIEMENT DIVIDENDES STRIPS&#93;.SommeDeCERT_QTE, &#91;R_PAIEMENT DIVIDENDES TITRES&#93;.TIT_DIVOUINTBRUT,  &#91;R_PAIEMENT DIVIDENDES TITRES&#93;.TIE_EXONEREACT&#41;

    Ensuite tu transforme ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Public Function dividende_a_payer&#40;Nt, nst , Bru , exo &#41; 
    dim Txp as double
    dim Txr as double
    Txp = 0.25 
    Txr = 0.15 
    Net = &#40;Nt * Bru&#41; - &#40;Nt * Txp&#41; 
    Avu = &#40;Bru * Txp&#41; - &#40;Bru * Txr&#41; 
    If exo = True Then tot = Nt * Bru 
    Else 
    If nst = Nt Then Avt = &#40;nst * Avu&#41; Else If nst > Nt Then Avt = Nt * Avu 
    Else&#58; If nst < Nt Then Avt = nst * Avu Else Avt = 0 
    End If 
    End If 
    End If 
    End If 
    dividende_a_payer = Net + Avt 
    End Function
    et çà devrait aller
    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Lorsque je copie
    Dividende: dividende_a_payer( [R_PAIEMENT DIVIDENDES TITRES].SommeDeCERT_QTE, [R_PAIEMENT DIVIDENDES STRIPS].SommeDeCERT_QTE, [R_PAIEMENT DIVIDENDES TITRES].TIT_DIVOUINTBRUT, [R_PAIEMENT DIVIDENDES TITRES].TIE_EXONEREACT)
    dans un des champs de la requête il m'affiche
    La syntaxe de l'expression n'ets pas correcte Vous avez omis une opérande ou un opérateur, vous avez entré un caractère ou un opérateur non valide, ou du texte non délimité par des guillemets.

    En mettant des ";" ça passe.

    J'ai également recopié la fonction modifiée mais lorsque je lance la requête il me demande de rentrer des valeurs pour Nt, nst , Bru , exo, ce qui me semble assez logique vu que je ne vois pas à quel endroit ces variables sont alimentées...

  5. #5
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    modifie la fonction de la manière suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Public Function dividende_a_payer&#40;Nt as double, nst as double, Bru  as double, exo as Boolean &#41; 
    ' çà vient peut être qu'il faut définir les variables
    dim Txp as double , Net as double, Avu as double
    dim Txr as double 
     
    Txp = 0.25 
    Txr = 0.15 
    Net = &#40;Nt * Bru&#41; - &#40;Nt * Txp&#41; 
    Avu = &#40;Bru * Txp&#41; - &#40;Bru * Txr&#41; 
    If exo = True Then 
     dividende_a_payer = Nt * Bru 
     Else 
      If nst = Nt Then 
       Avt = &#40;nst * Avu&#41; 
      Else 
       If nst > Nt Then 
        Avt = Nt * Avu 
       Else
        If nst < Nt Then 
         Avt = nst * Avu 
        Else
          Avt = 0 
        End If 
       End If 
      End If 
      dividende_a_payer = Net + Avt 
    End If 
     
    End Function
    pour ton info les variables sont alimentées par l'appel de la requête. Il te demande les valeurs car elle n'ont pas été définie (as ...) essaie pour voir
    J'ai aussi modifier ton code à toi de vérifier si c'est ok car j'avais vu une incohérance. Comme je l'ai réécrit çà me semble plus lisible

    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Wow ça marche... merci bien, tu es un chef
    Juste une chose que j'ai du modifier : nst as variant au lieu de nst as double car Nst peut être zéro et si je mets double il me renvoie une erreur...
    Super en tout cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Calculer le net à payer par rapport au nombre de copies
    Par agan2012 dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 21/11/2008, 20h54
  2. [Turbo Pascal] Calculer le salaire net en fonction du salaire fixe, commission et prime
    Par agan2012 dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 18/11/2008, 00h03
  3. Réponses: 4
    Dernier message: 11/06/2006, 13h05
  4. [MySQL] Fonctions calculs SQL/PHP pour projet football
    Par spamyx dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 17h16
  5. [Optimisation][Fonction]calcul du nombre de jours ...
    Par m-mas dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 26/10/2005, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo