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 :

Argument d'un Subroutine


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Argument d'un Subroutine
    Bonjour !

    Voilà je suis étudiant et j'ai pour projet de réaliser une calculatrice, avec notation polonaise inversée. Je vous passe les détails, j'en suis au point où je dois faire les calculs de sinus/cosinus/tangente. J'ai trouver une syntaxe qui effectue le calcul adéquat, mais qui est un peu lourde. Etant donné que le code sera le même dans le cas du sinus/cosinus et de la tangente j'ai décider de créer une subroutine, mais là se pose un petit problème : je vous met la photo pour que ce soit plus facile à comprendre : subroutine en haut, code en bas
    Nom : sub1.png
Affichages : 111
Taille : 32,0 Ko

    Il faut que je déclare l'argument de ma subroutine : "fonc" souligné en vert. Je souhaite le remplacer par "sin", "cos" ou "tan", mais étant donné que ce sont déjà des fonctions internes à VBA, je ne vois pas sous quel type déclarer "fonc" ni même s'il est possible de faire ma subroutine de cette manière !

    C'est là le sujet de ce post : est-ce possible de faire ça ? Si oui, comment déclarer mon argument ? Si non, quelles solutions je pourrait utiliser pour palier à cela ?

    Merci d'avance !

    Cordialement,
    Jérémy.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,
    Tu dois choisir suivant ce que l'utilisateur est susceptible d'employer.

    https://msdn.microsoft.com/fr-fr/lib.../jj692781.aspx

    Simple, Double, Decimal.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour !

    Tout d'abord merci pour votre réponse.
    Cependant j'ai du me faire mal comprendre : je souhaite remplacer l'argument de ma subroutine, "fonc", par une fonction inhérente à VBA : les fonctions sinus, cosinus, tangente. Ce que vous me proposez ne fonctionne pas étant donnée que je ne transforme pas mon "fonc" par un nombre mais par une fonction.
    Je répète que je doute de l'existence d'une telle solution, néanmoins je viens vérifier auprès de spécialistes ! :p

    Cordialement,
    Bondroit Jérémy.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    La question était
    ...comment déclarer mon argument ?
    d'où l'encadré rouge sur le type absent.

    Lorsque tu tapes sin( ou cos( ou n'importe quelle fonction VBA, VBE pratique l'auto complétion, il te donne donc le type attendu et celui renvoyé si il y a lieu d'être.

    L'ensemble des types et leur capacité est indiqué dans le lien fourni.

    Cordialement,
    [EDIT] j'ai peut-être pas compris ce que tu souhaitais faire...
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Effectivement je n'arrive pas à expliquer ce que je veux faire !
    En fait, l'argument de ma subroutine, "fonc", sera remplacé par l'argument que j'indiquerais quand j'appelle ma subroutine "CalculAngle(sin)" ou "CalculAngle(cos)". Il faut donc que je déclare le type de mon argument, manquant et encadré rouge dans mon post. Seulement, il faut que je déclare "fonc" en tant que fonction, vu qu'il sera remplacé par "sin","cos" ou "tan", qui sont des fonctions; et je ne sais donc pas quel type utiliser pour déclarer "fonc" en tant que tel.
    J'espère avoir été un peu plus clair !

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Ok je vois tu veux typer des fonctions natives.

    Il te faut donc créer un type donc une classe, et créer les méthodes qui vont se substituer à ces fonctions.

    Je ne pense pas que tu puisses appeler tes méthodes du nom des fonctions (sin, cos...).

    A voir.

    En regardant ton code je ne sais même pas si ça va fonctionner. Perso je n'ai jamais vu une telle approche :

    fonc() restera fonc() il faudrait peut-être voir du cote de la commande Run() plutôt et donc passer un string à ta fonction.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    D'accord, merci d'avoir pris le temps de me propose ces solutions !
    J'ai finis par abandonner cette idée car elle soulever plus de problème qu'elle ne répondais à mes attentes.
    J'indique donc le sujet comme résolu !
    Cordialement,

    Jérémy.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Résolu c'est le bouton en bas à gauche
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/03/2012, 18h12
  2. Passer un nombre variable d'arguments à une subroutine
    Par ben31400 dans le forum Fortran
    Réponses: 2
    Dernier message: 10/02/2011, 11h41
  3. Matrice en argument d'une subroutine
    Par ben31400 dans le forum Fortran
    Réponses: 2
    Dernier message: 09/02/2011, 14h43
  4. Réponses: 5
    Dernier message: 25/10/2010, 10h08
  5. Allocation dynamique dans subroutine d'un argument
    Par kranck dans le forum Fortran
    Réponses: 13
    Dernier message: 22/09/2008, 17h01

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