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 qui fonctionne sur VBA mais pas sur excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 55
    Points : 61
    Points
    61
    Par défaut Fonction qui fonctionne sur VBA mais pas sur excel
    Bonjour à tous,

    J'ai recrée sur VBA une fonction qui permet de calculer la moyenne d'une matrice composé d'une seule colonne, ma fonction marche bien lorsque je l'utilise via VBA mais lorsque je veux l'utiliser directement dans une cellule excel, la cellule considérée renvoit toujours #VALEUR.

    Savez-vous d'où peut venir ce problème ?

    voici le code de ma fonction

    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
    20
    21
    22
    23
    24
    Public Function mamoyenne2(A)
     
    Dim i, j, n As Integer
     
    n = UBound(A, 1)
     
    Dim moy As Double
    Dim somme As Double
     
     
        somme = 0
     
        For i = 1 To n
     
        somme = somme + A(i, 1)
     
        Next i
     
        moy = somme / n
     
     
    mamoyenne2 = moy
     
    End Function
    Merci d'avance.

    Cordialement.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour,

    une fonction personnalisée ne peut modifier que la cellule qui l'appelle …

    Et pour moi le code n'a pas d'intérêt - si ce n'est de ralentir le calcul - quand une fonction de feuille de calculs existe déjà …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 55
    Points : 61
    Points
    61
    Par défaut
    Bonjour Marc,

    effectivement je suis d'accord avec le fait qu'une fonction personnalisée ne peut modifier que la cellule qui l'appelle, c'est bien ce que j'ai fait c'est-à-dire me placer par exemple en cellule A2 et inscrire =mamoyenne2(A1:A4)

    Je ne vois donc pas pourquoi il me renvoit #VALEUR

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Si je ne m'abuse, la cellule où tu appelles ta fonction est contenu dans la plage de calcul de ta fonction.

    Ca ne viendrait pas de là ?

    Je ne me penche pas plus dessus, Marc a déjà tout dit de l'utilité de ta fonction.

    Quelle raison te pousse à procéder ainsi, plutôt que l'usage des fonctions existantes ?

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour bol45;

    Il faut déclarer un objet (Range) dans ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function mamoyenne2(A As Range)
    Puis adapter ton code en conséquence bien sûr.
    Cordialement

    Docmarti.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 55
    Points : 61
    Points
    61
    Par défaut
    OK parfait DocMarti, ça fonctionne merci

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

Discussions similaires

  1. [RegEx] Regex qui fonctionne en local mais pas sur le serveur
    Par lecroquant dans le forum Langage
    Réponses: 3
    Dernier message: 10/01/2012, 16h01
  2. Réponses: 4
    Dernier message: 15/11/2010, 21h31
  3. Réponses: 1
    Dernier message: 18/11/2009, 13h28
  4. Réponses: 1
    Dernier message: 15/04/2008, 14h03
  5. [2.0] connexion qui fonctionne chez moi mais pas sur un autre pc
    Par Lorenzeb dans le forum Accès aux données
    Réponses: 1
    Dernier message: 13/09/2006, 17h47

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