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 :

Log10 en VBA ne fonctionne pas


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Par défaut Log10 en VBA ne fonctionne pas
    Bonjour
    j'ai réalisé une fonction personnalisée le log10 décimal qui n'existe pas dans excel VBA.
    Je souhaiterai l'insérer dans mon code sub principal, mais ça ne marche pas j'obtiens que des 0 dans mon tableau.
    merci pour votre aide bien cordialement
    herbine

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Il faudrait que tu poste ton code.

    Hervé.

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, le Log de base 10 sous VBA ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Log10(12.555)
    car effectivement sans plus d'explications, difficile de faire mieux

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Si mes souvenirs sont bons, le Log de base 10 n'existe sous Excel 2003 (il existe bien sûr sous 2007 et +), pour ça j'utilisais la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function Log10(Valeur As Double) As Double
     
        Log10 = Log(Valeur) / Log(10#)
     
    End Function
    Hervé.

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,à priori c'est faux, car même sous 97, l'exemple donné plus haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Log10(12.555)
    fonctionne

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Alors autant pour moi !
    Désolé d'avoir dis une bêtise

    Hervé.

  7. #7
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, pas grave car même si chez moi cela fonctionne ( j'ai quand même 97 2002 et 2007 qui cohabitent ) et donc j'ai bien écrit "à priori"

  8. #8
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Log 10 existait bien sous 97, il est employé p42 ici :
    Programmer efficacement avec Excel en VBA http://bidou.developpez.com/tutoriels/ExcelVBA/ - tagué 97 "Cet article contient du code compatible avec les versions Excel 97 et supérieures."

    et il est cité dans un livre sur Excel 97 de Corinne Hervo

    cordialement,

    Didier

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour à toutes et tous,

    La question que je me pose, c'est pourquoi Herbine réinvente la roue ?
    Je n'ai plus VB6 installé pour vérifier, cette fonction existait-elle dans VB6 ?

    Hervé.

  10. #10
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, seul Log ( Log Népérien Ln ou Log de Base e ) existait sous VB6

  11. #11
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    OK kiki29, il me semblai bien que cette fonction n'existait pas à un moment donné et j'ai mélangé VB (VB6) et VBA.

    Je te remercie pour la précision.

    Hervé.

  12. #12
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Juste pour la précision, LOG10 n'existe pas en VBA pur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.worksheetfunction.log()
    est l'utilisation en VBA d'une fonction EXCEL et nécessite que la librairie Excel soit cochée. C'est naturel avec Excel, mais ce code ne fonctionnera pas en VBA Access, VBA Word ou VB6 (sans cocher une référence à Excel).

    Pour info, en Excel ( et donc aussi en VBA avec worksheetfunction), LOG(x) ou LOG10(x), c'est la même chose puisque LOG(), qui admet un second paramètre facultatif pour spécifier la base, prend 10 par défaut.

    Par contre, la contrepartie Excel de LOG() VBA est LN().

    En en VBA pur, la solution de Theze ( Log(Valeur) / Log(10#) ) me semble la meilleure alternative.
    "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...
    ---------------

  13. #13
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,bref après toutes ces digressions logarithmiques on attend toujours le code d'Herbine

  14. #14
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Citation Envoyé par Theze Voir le message
    La question que je me pose, c'est pourquoi Herbine réinvente la roue ?
    Oui, la question est là car VBA pur ou non, le fonction voulue est native sous 2003 (vérifié) et le code qui suit est OK sous 2003 (vérifié)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Loglog()
     
    MsgBox Application.WorksheetFunction.Log10(365)
    End Sub
    Donc soit elle bloque dans un contexte particulier qui reste à préciser, soit comme le dit Hervé...

    cordialement,

    Didier

Discussions similaires

  1. [XL-2007] Problème de Shadok - Macro VBA ne fonctionnant pas sur Office 2007 Windows 7
    Par Shadok_75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/02/2015, 19h56
  2. [AC-2010] Requete via code VBA ne fonctionne pas
    Par jurta dans le forum Access
    Réponses: 3
    Dernier message: 16/12/2013, 09h59
  3. [Toutes versions] Code vba ne fonctionne pas pour sous formulaire
    Par 8e8eClo dans le forum IHM
    Réponses: 5
    Dernier message: 23/03/2012, 10h32
  4. code vba ne fonctionne pas
    Par lecaire dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/01/2010, 23h27
  5. Mes codes VBA ne fonctionnent pas sous access 2007
    Par ralfus dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2008, 12h36

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