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.NET Discussion :

Comment passer en VBA l'adresse d'un tableau,en argument d'une fonction ?(d'1 dll C#)


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut Comment passer en VBA l'adresse d'un tableau,en argument d'une fonction ?(d'1 dll C#)
    Bonjour tout le monde !

    Mon titre n'est pas clair alors je m'explique:
    J'ai ecris une petite fonction a titre d'exemple TRANSFORMTAB dans ma dll C# (dll qui sert de bibliotheques de sous-fonctions que j'appelle dans mon VBA) , ma fonction prend en argument l'adresse d'un tableau et sa taille, et rajoute 1000 à chacun de ses elements; => mais je n'arrive pas a utiliser ma fonction dans mon VBA excel ...

    *************** CODE DLL

    //public unsafe void transformTab(long* tab,long maxi)

    public void transformTab(long []monTab ,long maxi)
    {
    for (int i = 0; i < maxi; i++)
    {
    monTab[i] = i + 1000;
    }
    }


    ************** CODE VBA

    Private Declare Function transformTab Lib _
    "D:\FinanceLib\FinanceLib\bin\Debug\FinanceLib" _
    (ByRef monTab As Long, ByVal maxi As Long)

    Private Sub CmdCsharp_Click()

    Dim i, tabVBA(1 To 5) As Long
    Dim fi As Object
    Set fi = CreateObject("FinanceLib.FinanceClass")
    For i = 1 To 5
    tabVBA(i) = i
    Next i
    Call fi.transformTab(tabVBA(1), 5)
    End Sub

    En apellant en argument juste le 1er element du tableau, VBA me met cette erreur :

    "call fi.transformTab(tabVBA(1), 5)"

    ERREUR D'EXECUTION '5'
    ARGUMENT OU APPEL DE PROCEDURE INCORRECT

    Et en apellant en argument juste le nom du tableau comme adresse, VBA me met cette erreur :

    "call fi.transformTab(tabVBA, 5)"

    ERREUR D'EXECUTION '13'
    INCOMPATIBILITE DE TYPE

    ***********************************

    Ma declaration par reference en VBA est-elle correcte ?
    Ou bien faudrait-il changer mon code C# ?
    Merci à tous pour vos remarques …

    Russel
    Images attachées Images attachées  

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    double post sur ce forum
    de plus tu es sur vb.net et tu nous parles de C# et de vba ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. passer un tableau en argument dans une fonction
    Par rogerio dans le forum Débuter
    Réponses: 6
    Dernier message: 30/10/2008, 12h15
  2. Comment passer un argument dans une fonction
    Par DeezerD dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 22/01/2008, 18h13
  3. Réponses: 7
    Dernier message: 04/05/2007, 12h20
  4. Réponses: 1
    Dernier message: 03/05/2007, 07h49
  5. Réponses: 17
    Dernier message: 24/11/2006, 18h25

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