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

VBA Access Discussion :

Fonction de facturation


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Par défaut Fonction de facturation
    Bonjour,

    Je cherche a faire une fonction qui me permettrais de faire un filtre dans une requete affichant les commandes à facturer

    Sachant que j'ai une champ date de livraison et que j'ai un champ ou il y a marqué "30 jrs le 10 "ou "60 jrs le 15", comment mis prendre sous vba ?

    Merci d'avance

    Jim

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    J'Imagine que c'est un filtre sur la date de facturation que tu veux faire.

    Il n'y a pas à ma connaissance de fonction traduisant "30j le 10" en une date précise mais tu pourrais procéder ainsi avec la fonction similaire à celle ci-dessous (à mettre dans un module).

    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
     
    public function CalculerDateEcheancePaiement(prmDateFacturation as date, prmDelaisFacturation as string) as date
     
       dim result as date
     
       select case prmDelaisFacturation 
          case "30 jrs le 10"
             'ici l'algo de calcul pour trouver la date d'écheance
             'Cela impliquera surement la fonction DateAdd() et la fonction Day()
             result= ....
     
          case "60 jrs le 15"
             'ici l'algo de calcul pour trouver la date d'écheance
             'Cela impliquera surement la fonction DateAdd() et la fonction Day()
             result= ....
     
          case autre délais de paiement
             result= ....
     
          case else
             error(5):'Au cas où tu as oublié un choix
     
       end select
     
       CalculerDateEcheancePaiement=result
    end function
    Une solution plus efficace plutôt que le faire dans une requète à chaque fois que tu veux faire une sélection serait de stocker cette date dans la table des factures lors de la création de la facture.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Par défaut
    Merci tardif pour ta réponse dsl

    Quelqu'un a une idée d'a quoi pourrait ressembler ce fameux algo de previsionnel de facturation ?

    Merci d'avance

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Fais toi expliquer cela par ton caomptable préféré.

    De mémoire, et cela remonte TRÈS loin 30j FDM c'est tu ajoutes 30j à la date de la facture et tu trouves la fin du mois correpondant.

    Ça ce coderai ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim dateEcheanceIntermediaire as date
    dateEcheanceIntermediaire =dateadd("j",30,dateFacture)
    dim dateFinDeMois as date
     
    if month(dateEcheanceIntermediaire)<12 then
        dateFinDeMois=dateadd(-1,j,dateserial(year(dateEcheanceIntermediaire), month(dateEcheanceIntermediaire)+1,1))'Calcul le début du mois suivant et retranche 1j
      else
        dateFinDeMois=dateserial(year(dateEcheanceIntermediaire),12,31)
    end if
    Prend garde à février et aux années bisextiles.

    En espérant que cet exemple t'aidera.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [WD15] numero de facture en fonction de l'année
    Par saroy dans le forum WinDev
    Réponses: 3
    Dernier message: 12/11/2012, 17h09
  2. Fonction de calcul de prix (facture) dans un tableau
    Par jeffer dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2012, 08h18
  3. Réponses: 1
    Dernier message: 23/12/2011, 17h49
  4. Facturation sous totaux en fonction de
    Par PuppeT mAsTer dans le forum Excel
    Réponses: 4
    Dernier message: 04/12/2008, 17h11
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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