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 :

Access 97 vers Access 2007, formules=arrondi


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Access 97 vers Access 2007, formules=arrondi
    Bonjour,

    J'ai un programme pour mes clients qui a été fait avec Access 97, j'ai loader la version 2007 et j'ai une erreur.
    Dans un formulaire de facture j'ai la formule suivante qui arrondi le résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VraiFaux(EstNull([SousTotal]);0;arrondi(([SousTotal]+[Tx1Amt])*[Tx2Pourcent]/100;2))
    Access 2007 n'accepte pas le arrondi, alors comment je fais ?
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 354
    Points
    34 354
    Par défaut
    Salut,

    je n'ai pas 2007 au boulot, mais j'ai des doutes sur la disparition de la fonction.

    Peux-tu verifier qu'aucune reference ne manque a ton projet stp ?

    Au pire, tu peux "simuler" cete fonction avec le code propose depuis la
    http://access.developpez.com/sources...onctionRound97

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    Salut,

    je n'ai pas 2007 au boulot, mais j'ai des doutes sur la disparition de la fonction.

    Peux-tu verifier qu'aucune reference ne manque a ton projet stp ?

    Au pire, tu peux "simuler" cete fonction avec le code propose depuis la
    http://access.developpez.com/sources...onctionRound97
    Cette formule est dans une cellule zone texte d'un formulaire et cette cellule calcule les taxes. Je ne suis pas trop connaissant dans les formules ni rien d'ailleur.
    Le message d'erruer me mentionne "la fonction "arrondi" n'est pas défini.
    Je dois faire "Public arrondi As Integer" dans le module variable ???
    Merci

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bonjour,

    La fonction Arrondi n'existe pas sous Access, mais sous Excel.

    Tu as la fonction Arrond - qui travaille sur la partie entière
    et aussi la fonction Round - qui fait à peu près la même chose que la fonction Arrondi de Excel, mais qui a un mode de fonctionnement très "bizarre"...

    Donc, si tu veux quelque chose qui ressemble à de l'arrondi au sens réel, tu peux te recréer la fonction.
    Mais il y a fort à parier que la fonction était déjà définie dans ton projet initial dans un module...

    Tu pourrais donc faire une fonction du Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function Arrondi(a_dNombre as double, a_bDec as byte) as double
        Dim lNbTemp as Long
        lNbTemp = clng(a_dNombre * 10^a_bDec)
        Arrondi = cDbl(lNbTemp / 10^a_bDec)
    End function

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Voici ce que j'ai dans dans le code.
    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
    Public Function Arrondi(Nombre, Decimals) As Double
    'Simuler la fonction Arrondi d'Excel.
    Dim Reste, Comparaison As Double
    Dim Multiplicateur As Long
    If IsNull(Nombre) Then
        Nombre = 0
    End If
    If IsNull(Decimals) Then
        Decimals = 0
    End If
    Multiplicateur = Val("1" + String$(Decimals, "0"))
    Comparaison = Val("0." + String$(Decimals, "0") + "5")
    Reste = Nombre - Int(Nombre * Multiplicateur) / Multiplicateur
    If Reste >= Comparaison Then
        Arrondi = Int((Nombre * Multiplicateur) + 1) / Multiplicateur
    Else
        Arrondi = Int(Nombre * Multiplicateur) / Multiplicateur
    End If
    End Function
    Merci de votre aide, c'est apprécié

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Re

    d'abord, avec les balises de code, ce serait plus lisible
    Ensuite... c'est quoi la question ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/07/2009, 22h05
  2. Réponses: 3
    Dernier message: 17/03/2009, 01h47
  3. Réponses: 2
    Dernier message: 07/08/2008, 09h24
  4. Réponses: 2
    Dernier message: 19/12/2007, 16h47
  5. access 2003 vers access 2007
    Par miky'art dans le forum Access
    Réponses: 1
    Dernier message: 21/08/2007, 23h08

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