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 :

[VBA-E] Comment faire une fonction utilsant une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut [VBA-E] Comment faire une fonction utilsant une autre feuille
    bonjour,
    je me suis développé des outils personnels en VBA dans un fichier .xla.
    Evolution oblige, j'aimerai pouvoir faire une fonction que l'on appellerait dans ma feuille de calcul excel par exemple =Toto(argument), et que la fonction Toto puisse aller chercher les informations dans un autre fichier excel.
    La fonction focntion quand je fais des tests (du genre faire une sub qui l'appelle pour me mettre la valeur dans une msgbox), mais quand je fais le test sur la feuille avec =toto(), il me met l'erreur :"#valeur".
    je ne comprends pas pourquoi.

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function Qx(iAge As Integer, stTable As String) As Double
    Dim stFichier As String
     
     
    stCheminTables = "c:\"
    stFichier = "TV8890.xls"
    url = stCheminTables & "\" & stFichier
     
        Workbooks.Open url
    Qx = Workbooks(stFichier).Sheets(stTable).Cells(iAge + 3, 2)
        Workbooks(stFichier).Close
     
    End Function
    j'avoue ne pas comprendre pourquoi il refuse.

    J'ai aussi une question subsidiaire : comment faire pour que mes fonctions se mettent en gras... comme les fonctions d'excel.

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    Bonjour,

    qd tu fais ton test dans une Sub, ceci peut marcher, mais il ne peut pas marcher qd tu l'appelle à partir d'une cellule en faisant "=toto()", parce que dans la cellule, changement de feuille n'est pas possible durant le calcul, il cherche les données dans la même feuille, donc, il ne trouve rien.

    Dans ce cas, il vaut mieux que tu fais une méthode appelé par un Commandbouton, là-dedans, tu fais une boucle pour appeler la fonction toto() pour chaque cellule qui ont besoin de calcul.

  3. #3
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    ceci sonne le glas de mon idée.
    Est ce que je peux au moins lire dans un fichier texte ou est ce qu'il ne peut pas lire en dehors de la feuille?N

    Autre interrogation : le problème persiste t il si je mets mes données dans une base de données?

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. [Tableaux] Comment faire un tableau dans une fonction?
    Par Alexandrebox dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2008, 00h12
  3. comment faire un offset dans une fonction ?
    Par tempo-lyon dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2007, 11h15
  4. [VBA-E]Comment faire pour écrire dans une page excel existante ?
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 13h54
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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