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 :

Débutant : comment adapter une formule excel sur access


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Débutant : comment adapter une formule excel sur access
    Bonjour,
    j'essaye depuis plusieurs jours d'adapter une fonction excel dans access, cette fonction sert à contrôler la saisie d'un chiffre dans le champ d'un formulaire.
    sur excel la fonction à adapter est la suivante :
    SI(97-MOD((100000000+ENT(D2/100))*100;97)=MOD(D2;100);"";"ERR")
    D2 correspond au chiffre saisi à contrôler

    Quand j'ai voulu adapter cette fonction sur un champ du formulaire, j'ai mis au niveau de la propriété du champs valide si :
    97-((100000000+Ent([CHAMPformulaire ]/100))*100) Mod 97=[CHAMPformulaire] Mod (100)

    cepandant j'ai comme resultat un #nombre !

    j'ai tenté de l'adapter par une macro mais j'ai un message "depassement de capacité" avec une base contenant 3 enregistrements

    Merci d'avance pour votre aide car je ne sais plus quoi faire

  2. #2
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 74
    Points : 79
    Points
    79
    Par défaut
    selon moi tu devrais aller dans le VBA creer un module et dans le module1
    tapper ta fonction, que tu appelerais ensuite dans le vba de ton champs de formulaire.

    non?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai également fait cette tentative mais access ne reconnais pas la valeur du champ

  4. #4
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    Pogny a raison, ce sera beaucoup plus pratique en écrivant les formules en tant que fonctions personnalisées dans un module VBA. Là, tu as deux solutions :

    - Soit tu convertis toutes tes fonctions en Access/VBA :

    la fonction Si est remplacée par la fonction iif (ou une clause If)
    Ent devient Fix
    quant à Mod... je crois pas que ça existe dans Access.

    - Soit tu crées une référence à la librairie Excel, et tu utilises les fonctions Excel dans ton code VBA. Je ne sais pas si tu peux utiliser les fonctions francophones ou si tu dois traduire en anglais : pour savoir quelles fonctions sont disponibles, regarde dans l'exploratuer d'objets.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    j'ai fait une autre tentative en ecrivant au niveau de EVENEMENT/SI MODIFICATION le code suivant :

    Function Testlc(NOMDUCHAMP)
    Testlc = 97 - ((100000000 + Ent(NOMDUCHAMP / 100)) * 100) Mod 97
    If Testlc = NOMDUCHAMP Mod (100) Then
    Testlc = True
    Else
    MsgBox "LE NUMERO EST FAUX, REVERIFIEZ VOTRE SAISIE"

    End If
    End Function

    et quand je vérifie ma saisie par DEBOGAGE/COMPILER, j'ai un message d'erreur "sub ou fonction non definie" au niveau de Ent.
    Pourtant la fonction Ent existe bien sur access

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    la fonction mod sous access ne prend que des entiers
    il faut la réécrire avec une fonction perso

    function monmodulo(x as double,y as double) as double
    monmodulo =x -(int(x/y)*y)
    end function

Discussions similaires

  1. [AC-2007] Comment recuperer une formule EXCEL sur ACCESS?
    Par anthooooony dans le forum Access
    Réponses: 9
    Dernier message: 05/12/2011, 18h25
  2. [AC-2003] Comment executer une macro Excel sous Access
    Par Deustalos dans le forum VBA Access
    Réponses: 6
    Dernier message: 04/11/2009, 12h30
  3. Comment créer une interface excel sur la base d'un tableau.?
    Par anasleco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/09/2009, 18h03
  4. Comment copier une feuille EXCEL sous ACCESS?
    Par PAULOM dans le forum Access
    Réponses: 7
    Dernier message: 28/04/2006, 10h01
  5. [debutant] Traduite une formule excel dans access
    Par zelob dans le forum Access
    Réponses: 5
    Dernier message: 25/02/2006, 05h17

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