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

Macros et VBA Excel Discussion :

fonction second degré


Sujet :

Macros et VBA Excel

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut fonction second degré
    Bonsoir j'ai écrit une fonction qui calcul le discriminant d'une équation du seconde degré ax²+bx+c , la voici :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function delta(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
    delta = b * b - 4 * a * c
    End Function
    Quand je tape sur F5 , au lieu de s'exécuter , çà me lance une fenêtre où je dois taper le nom de la macro , quelqu'un sait pq ?

    merci

  2. #2
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonsoir,
    Peut être parce que la fonction DELTA existe déjà sur Excel.
    (pas la même). Renomme ta fonction et tiens nous au courant.

    Cordialement

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut
    j'ai essayé de changer avec d'autres noms , çà ne marche tjs pas

  4. #4
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re


    Si tu parles de F5 dans VBE, la commande Exécuter n'exécute que des macros sans argument ou des userfroms. Pas des fonctions.

    @+

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut
    je comprends mieux , et si je veux la tester dans excel je mets par exemple delta(1;0;0) , çà m'envoit #NOM?

  6. #6
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re
    N'oublie pas le signe =
    =delta2(1;0;0)
    ou
    =DELTA2(A1;A2;A3)


    DELTA existe déjà sur EXCEL, avec 2 arguments seulement!
    @+

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut
    je l'ai mis et j'ai cette erreur...

  8. #8
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re
    est ce que la fonction est dans le classeur dans lequel tu saisies ta formule?

    Et je répète n'utilise pas DELTA.

    @+

  9. #9
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut
    çà marche , meme en utilisant delta , c'est bon , merci pour tout

  10. #10
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re

    ta formule fonctionne sur ton poste avec DELTA, (tu ne doit pas avoir Delta a 2 arguments) mais elle ne fonctionnera pas sur le poste de quelqu'un qui a cette fonction (à deux arguments) sur son poste. As toi de voir si c'est pour un usage unique.

    cordialement

  11. #11
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut
    j'ai trouvé très curieux que tu corriges pas le code de ma fonction car moi en correction j'ai ce code ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function couik(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
    Dim resultat As Integer
        resultat = b * b - 4 * a * c
        couik = resultat
    End Function

  12. #12
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re

    je n'avais pas mis couik mais delta2. C'est moins poétique je te l'accorde

    bonne nuit

  13. #13
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut
    oui mais tu trouves pas bizarre que ma fonction marche autant que la correction ?

    alors pq dans la correction ils se sont ennuyés à rajouter un Dim , et faire passer la fonction par une variable "resultat" ?

  14. #14
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    je ne sais pas trop, peut être une habitude ancestrale de programmeur pour les fonctions plus complexe.

    Maintenant tu nous fais la fonction pour le calcul des déterminants (ou discriminants, je ne sais plus) pour une équation du second degré?

    @+

  15. #15
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut
    ? ben c'est ce que j'ai fait , je vais me coucher , j'attaque demain la procédure en rapport avec cette fonction ...bonne soirée .

  16. #16
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    pour ce qui est de la fonction proprement dite, je sais pas ce qu'il y a de bon ou pas bon, mais pour ce qui est de la question
    Citation Envoyé par maxence45
    Quand je tape sur F5 , au lieu de s'exécuter , çà me lance une fenêtre où je dois taper le nom de la macro , quelqu'un sait pq ?
    la réponse est plus simple. F5 ne lance pas les fonctions
    il te faut ecrire une fonction et une procedure appelante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function delta(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
    delta = b * b - 4 * a * c
    End Function
    sub test_appel
    call delta (4 , 12 , 65)
    'ou alors MsgBox delta(4, 12, 65)
    end sub
    ça te permet de voir si ton calcul est cohérent et de tester tes variables (en executant par  F8 c'est plus facile) avant de tester dans les cellules
    

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour tester une fonction tu peux aussi le faire à l'aide de la fenêtre exécution.

    Pour l'afficher Affichage/Fenêtre exécution (ou ctrl+G)

    Là tu tapes ta fonction avec les paramètres en la faisant précéder de ?

    Ainsi :

    et tu valides, le résultat va s'afficher juste en dessous.

  18. #18
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    merci Starec
    je ne connaissait pas le truc ,il va m'éviter les incessants allers retours entre VBA et Excel
    Cordialement
    Daranc

  19. #19
    Invité
    Invité(e)
    Par défaut
    Pour préciser, cette fonction doit être déclarée en Public et dans un module, et non dans le code d'une feuille.

  20. #20
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Citation Envoyé par alsimbad Voir le message
    ...
    la réponse est plus simple. F5 ne lance pas les fonctions
    il te faut ecrire une fonction et une procedure appelante...
    Attention à la précision des réponses svp, pour ne pas embrouiller la personne qui pose la question.

    F5 peut sans problème lancer une fonction.

    En fait, F5 et F8 peuvent lancer des procédures ou des fonctions, mais il faut que ces procédures et fonctions ne requièrent aucun paramètre, même si ces paramètres sont optionnels...!

    Pour les procédures ou fonction requérant des paramètres, il faut les lancer à partir d'une procédure ou de la fenêtre d'exécution, en passant alors les paramètres adéquats.


    Bonne journée
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/11/2007, 13h17
  2. [TP] Equation du second degré
    Par WhiteTigerZ dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 08/11/2006, 22h00
  3. Petit programme en C [Second degré]
    Par Mister Revenge dans le forum C
    Réponses: 7
    Dernier message: 21/08/2006, 13h51
  4. Fonction { Conversion Degre / Radian }
    Par MirC++ dans le forum C++
    Réponses: 4
    Dernier message: 01/04/2006, 14h58
  5. Visual basic: algo résolvant une équation du second degré
    Par mauriiice dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 05/12/2005, 17h16

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