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

VB 6 et antérieur Discussion :

[VB6]Ecrire une fonction dans ma feuille Excel


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Points : 73
    Points
    73
    Par défaut [VB6]Ecrire une fonction dans ma feuille Excel
    Bonjour,

    Je veux écrire dans une cellule Excel à partir de VB6

    Je veux en fait écrire une fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ATGetCurrVal(457854; """"; """"; 1040; 1; 0)
    POur écrire dans la cellule je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F_Excel.Cells(1,1).Value = "ATGetCurrVal(457854; """"; """"; 1040; 1; 0)"
    Mais ca ne marche pas :

    Run-time error '1004'
    Application-defined or object-definied error


    Comment dois-je faire ?

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    F_Excel c'est bien ta feuille excel ?

    remplace le .value par .Formula (ou .FormulaLocal, en français..)

    et rajoute le = qui manque..

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F_Excel.Cells(1,1).FormulaLocal = "=ATGetCurrVal(457854, """", """", 1040, 1, 0)"
    Si F_Excel est une feuille... Ca je n'en sais rien mais je le devine...

  4. #4
    Membre régulier Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Points : 73
    Points
    73
    Par défaut
    Merci ca marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    F_Excel_Tags.Cells(i, 3).FormulaLocal =
    "=ATGetCurrVal(456213; """"; """"; 1040; 1; 0)"
    par contre je n'arrive pas à composer avec dse variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tag = F_Excel_Tags.Cells(i, 1).Value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    F_Excel_Tags.Cells(i, 3).FormulaLocal =
    "=ATGetCurrVal(" & Tag & "; """"; """"; 1040; 1; 0)"
    Et je n'arrive pas à recuperer la valeur du champ ou j'ai envoyer la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rs_Tags!Current = F_Excel_Tags.Cells(i, 3).Value
    F_Excel_Tags est bien une feuille

    et Rs_Tags est un recordset ^^

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Et si tu lui poussait unavant de récupérer la valeur de ta cellule?

  6. #6
    Membre régulier Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Points : 73
    Points
    73
    Par défaut
    Ca avance :

    J'arrive à metter la formule dans excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FormuleCurrent =
    CStr("=ATGetCurrVal(""45F085""; """"; """"; 1040; 1; 0)")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F_Excel_Tags.Cells(i, 3).FormulaLocal = FormuleCurrent
    Par contre que je mette le .Calculate ou pas ca ne change rien...
    J'ai essayé sur la cellule aussi ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F_Excel_Tags.Cells(i,3).Calculate
    Mais aucun résultat non plus


    Sinon j'arrive à récupere le résultat en découpant l'action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Recup = CIntF_Excel_Tags.Cells(i, 3).Value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rs_Tags!Current = Recup
    Mais la valeur qui arrive dans mon recordset est toujours 2029, (je précise que c'est pas la valeur que la fonction, retourne sur Excel non plus)

    --> Trouvé c'est en fait Error 2029 parce que le champs excel affiche #NOM?
    car la fonction est écrite mais n'est pas calculée


    Et je n'arrive pas à mettre une variable dans ma formule; comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FormuleCurrent =
    CStr("=ATGetCurrVal( & Tag & ; """"; """"; 1040; 1; 0)")
    2 choses :

    - Comment composer la fonctions avant de l'envoyer sur Excel

    - Comment faiore pour actualiser la feuille, ou simplement la cellule une fois qu'elle contient la fonction, pour ensuite recupérer le résultat.

  7. #7
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Il sert à quoi to recordset? Tu envoie le résultat dans une base de données Access?

  8. #8
    Membre régulier Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Points : 73
    Points
    73
    Par défaut
    Non c'est pour afficher dans un datagrid, et aussi car j'en ai besoin dans une autre feuille.

    Je ne comprends tjs pas pourquoi je n'arrive pas ça composer la fonction avec des variables ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FormuleCurrent =
    CStr("=ATGetCurrVal( & Tag & ; """"; """"; 1040; 1; 0)")

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    te manquerai pas des ".. ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...FormulaLocal  = "=ATGetCurrVal( " & Tag & "; """"; """"; 1040; 1; 0)"

Discussions similaires

  1. reporter une cellule dans plusieurs feuilles excel
    Par tigdub1gal dans le forum Excel
    Réponses: 17
    Dernier message: 07/06/2007, 01h23
  2. Ecrire une fonction dans C++ Builder
    Par ricciheig dans le forum C++Builder
    Réponses: 1
    Dernier message: 27/05/2007, 23h05
  3. Ecrire des données dans deux feuilles excel
    Par gantec dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 28/02/2007, 08h28
  4. [vb6] Ajouter une ligne dans un tableau excel
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h41
  5. Peut on inserer une fonction dans un graphique excel ?
    Par Celia1303 dans le forum Excel
    Réponses: 2
    Dernier message: 08/11/2005, 09h09

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