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 :

Retrouver les programmes appelés.


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Retrouver les programmes appelés.
    Bonjour;

    J'ai un fichier excel contenant un code.
    Je souhaiter completer certaines fonctions. Ainsi, la première macros, c'est ce qui suit que je ne comprends pas du tout.
    Je n'arrive pas à trouver la macro source de ce programme qui suit.
    Qu'est ce que cela veut dire tout ça??
    Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Declare Sub cA Lib "pcont.dll" Alias "_CALCULS_APPUIS@100" (ByVal nbt&, ByVal nelem&, ByVal genre&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, reaction#, deplacement#, _
      Mb#, Md#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
    Private Declare Sub cM Lib "pcont.dll" Alias "_CONSTRUIT_MATRICE@56" (ByVal nbt&, a#, b#, c#, e#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#, Ma#)
    Private Declare Sub cT Lib "pcont.dll" Alias "_CALCULS_TRAVEES@136" (ByVal nbt&, ByVal nelem&, ByVal pas&, ByVal l#, ByVal abscisse#, ByVal n&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, _
     reaction#, deplacement#, Mb#, Md#, Mt#, Th#, Fl#, Re#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
    Cordialement



    Dans le même éditeur de programme, voici ce qu'il y a.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Private Declare Sub cA Lib "pcont.dll" Alias "_CALCULS_APPUIS@100" (ByVal nbt&, ByVal nelem&, ByVal genre&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, reaction#, deplacement#, _
      Mb#, Md#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
    Private Declare Sub cM Lib "pcont.dll" Alias "_CONSTRUIT_MATRICE@56" (ByVal nbt&, a#, b#, c#, e#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#, Ma#)
    Private Declare Sub cT Lib "pcont.dll" Alias "_CALCULS_TRAVEES@136" (ByVal nbt&, ByVal nelem&, ByVal pas&, ByVal l#, ByVal abscisse#, ByVal n&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, _
     reaction#, deplacement#, Mb#, Md#, Mt#, Th#, Fl#, Re#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
     
     
     
    Sub calcul_moments(nbt As Long, portee() As Double, cod() As Double, Ko As Double, Kn As Double, k() As Double, module() As Double, inertie() As Double, moments() As Double, tranchants() As Double, flèches() As Double, réactions() As Double)
     
    'intermédiaires :
    Dim Rog(150) As Double, Rod(150) As Double, Rg(150) As Double, Rd(150) As Double
    Dim reaction(150) As Double, deplacement(150) As Double, Mb(150) As Double, Md(150) As Double
    Dim Ai(150) As Double, Bi(150) As Double, Ci(150) As Double, EI(150) As Double
    Dim Ma() As Double
    Dim genre As Long
    Dim distance As Double, abscisse As Double
    'sorties :
    Dim Mt(25, 2) As Double, Th(25, 2) As Double, Fl(25, 2) As Double, Re(25, 2) As Double
    'autres :
    Dim i As Long, j As Long, l As Double
     
    ReDim Ma(nbt, nbt) As Double
    genre = 1
    Call cM(nbt, Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn, Ma(0, 0))
    Call cA(nbt, cod(0, 0), genre, Ma(0, 0), cod(0, 0), Rog(0), Rod(0), Rg(0), Rd(0), reaction(0), deplacement(0), Mb(0), Md(0), Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn)
    For i = 1 To nbt
        Call cT(nbt, cod(0, 0), pas, portee(i), abscisse, i, Ma(0, 0), cod(0, 0), Rog(0), Rod(0), Rg(0), Rd(0), reaction(0), deplacement(0), Mb(0), Md(0), Mt(0, 0), Th(0, 0), Fl(0, 0), Re(0, 0), Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn)
        For l = 1 To 3
            For j = 1 To 2 * pas
                moments(2 * (i - 1) * pas + j, l) = Mt(j, l - 1)
                tranchants(2 * (i - 1) * pas + j, l) = Th(j, l - 1)
            Next
            For j = 1 To pas
                flèches(2 * (i - 1) * pas + 2 * j - 1, l) = 1000 * Fl(j - 1, l - 1)
                flèches(2 * (i - 1) * pas + 2 * j, l) = 1000 * Fl(j, l - 1)
            Next
            réactions(2 * i - 1, l) = Re(0, l - 1)
            réactions(2 * i, l) = Re(1, l - 1)
        Next
    Next
     
     
    For j = 1 To 2 * pas * nbt
        'mini
        moments(j, 1) = moments(j, 1) + moments(j, 2)
        tranchants(j, 1) = tranchants(j, 1) + tranchants(j, 2)
        flèches(j, 1) = flèches(j, 1) + flèches(j, 2)
     
        'maxi
        moments(j, 3) = moments(j, 3) + moments(j, 2)
        tranchants(j, 3) = tranchants(j, 3) + tranchants(j, 2)
        flèches(j, 3) = flèches(j, 3) + flèches(j, 2)
    Next
     
    For j = 1 To 2 * nbt
        réactions(j, 1) = réactions(j, 1) + réactions(j, 2)
        réactions(j, 3) = réactions(j, 3) + réactions(j, 2)
    Next
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il s'agit d'une DLL personnel, qui n'est pas fourni d'office avec MS Windows.

    Ma# signifie CDbl(Ma)

    En passant, c'est une bonne pratique de passer une structure/type par référence lorsqu'il y a trop de paramètres.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut VBA dll
    Bonjour,

    J'ai passé hier toute l’après midi à chercher à décortiquer ce DLL. J'ai téléchargé une usine de logiciel (Soit disant réputé pouvoir lire des code tout genre) pour le lire, mais rien n'y fait. Pensez vous pouvoir m'aider à sortir ce programme et le décortiquer. Dans ce programme, il y 'a un noyau de fonction dans lequel je souhaitais rajouter d'autre pour mes calculs spécifiques.
    J'avais commencé à pratiquer VBA, et depuis 3 ans, je n'ai pas retouché. Même les fonctions basiques que je connaissais, j'ai oublié une grosse partie. Je dois me remettre à fond.
    J’évolue dans le Btp, et je souhaiter pouvoir automatiser beaucoup de programmes. J'ai déjà pas mal de petits programme du genre non aboutis que j'avais créés. Il me faut de l'aide. Merci.

    PJ. Si je vous souhaitez que je vous envoie des programmes pour échanger sur le sujet, merci de me dire comment.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Ta .dll comporte plus de 3 fonctions (Celle que l'on voit ici) et tu voudrai importer le reste des fonctions de ta .dll dans le VBA ? Mais tu n'as pas de fichier .h pour pourvoir voir les prototypes des fonctions ? C'est cela ?
    Tu n'as pas de documentation sur cette .dll non plus ?

    Si ta .dll est faite en C++, tu pourrai demander des infos sur comment extraire les prototypes sur les forums du site DVP, idem pour d'autres langages (C etc...).
    C et C++
    C++ uniquement
    C uniquement

    Envoie moi ta .dll par mp si tu veux ou au moins l'addresse du serveur si mise sur un serveur, j'essayerai de regarder mais sans rien promettre au niveau du résultat.


    @+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Le site me dit que le fichier .dll est non valide pour l''envoi.
    pouvez vous me donner une adresse mail où envoyer un mail? sur l'adresse: ayoumouamas AT yahoo DOT fr

    Cordialement

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    zip le fichier
    Dernière modification par AlainTech ; 16/08/2014 à 11h37. Motif: Suppression de la citation inutile

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour;

    Enfin l'envoi du fichier est possible.
    Je vous remercie de votre aide.

    Cordialement
    Fichiers attachés Fichiers attachés

  8. #8
    Invité
    Invité(e)
    Par défaut
    Salut,

    Tu n'as pas répondu au final (Message n°4).

    Sinon, apparemment, tu aurai 20 fonctions. Pour récupérer les prototypes des fonctions, il faudrait demander sur le forum C++.

    @+


    P.S.: J'ai complètement oublié que j'étais en 64 bit et que je ne pourrai pas tester ta .dll 32 bit sur Excel.
    Dernière modification par Invité ; 13/08/2014 à 11h51.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Il faudrait que quelqu'un m'aide à extraire ce dll.
    Je fais un programme de calculs en me servant de ce dll, et il est limité en capacité.
    Il a été programmée depuis longtemps et ne semble pas tenir compte de la capacité des nouveaux ordinateurs.
    Il faudrait augmenter les limites de: 12; 150;250 contenu dans le programme interne du dll.
    Svp!!
    En même temps, j'aimerais pouvoir voir ce qu'il y a à l’intérieur de ce dll pour manipuler un peu.

  10. #10
    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 !

    Excel ne pouvant modifier de dll, ce n'est plus le bon forum !

    Et de toute manière, un fichier dll n'est pas modifiable, il faut retourner dans le programme et son langage source
    pour le modifier et compiler une nouvelle bibliothèque !
    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)

  11. #11
    Invité
    Invité(e)
    Par défaut
    bonjour,
    il faut trouver dans quel quel langage la dll à été créer, et télécharger un dé-compilateur pour ce langage.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Salut! As-tu trouvé la solution? je suis aussi bloqué
    Citation Envoyé par dioufo Voir le message
    Bonjour;

    J'ai un fichier excel contenant un code.
    Je souhaiter completer certaines fonctions. Ainsi, la première macros, c'est ce qui suit que je ne comprends pas du tout.
    Je n'arrive pas à trouver la macro source de ce programme qui suit.
    Qu'est ce que cela veut dire tout ça??
    Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Declare Sub cA Lib "pcont.dll" Alias "_CALCULS_APPUIS@100" (ByVal nbt&, ByVal nelem&, ByVal genre&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, reaction#, deplacement#, _
      Mb#, Md#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
    Private Declare Sub cM Lib "pcont.dll" Alias "_CONSTRUIT_MATRICE@56" (ByVal nbt&, a#, b#, c#, e#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#, Ma#)
    Private Declare Sub cT Lib "pcont.dll" Alias "_CALCULS_TRAVEES@136" (ByVal nbt&, ByVal nelem&, ByVal pas&, ByVal l#, ByVal abscisse#, ByVal n&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, _
     reaction#, deplacement#, Mb#, Md#, Mt#, Th#, Fl#, Re#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
    Cordialement



    Dans le même éditeur de programme, voici ce qu'il y a.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Private Declare Sub cA Lib "pcont.dll" Alias "_CALCULS_APPUIS@100" (ByVal nbt&, ByVal nelem&, ByVal genre&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, reaction#, deplacement#, _
      Mb#, Md#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
    Private Declare Sub cM Lib "pcont.dll" Alias "_CONSTRUIT_MATRICE@56" (ByVal nbt&, a#, b#, c#, e#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#, Ma#)
    Private Declare Sub cT Lib "pcont.dll" Alias "_CALCULS_TRAVEES@136" (ByVal nbt&, ByVal nelem&, ByVal pas&, ByVal l#, ByVal abscisse#, ByVal n&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, _
     reaction#, deplacement#, Mb#, Md#, Mt#, Th#, Fl#, Re#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
     
     
     
    Sub calcul_moments(nbt As Long, portee() As Double, cod() As Double, Ko As Double, Kn As Double, k() As Double, module() As Double, inertie() As Double, moments() As Double, tranchants() As Double, flèches() As Double, réactions() As Double)
     
    'intermédiaires :
    Dim Rog(150) As Double, Rod(150) As Double, Rg(150) As Double, Rd(150) As Double
    Dim reaction(150) As Double, deplacement(150) As Double, Mb(150) As Double, Md(150) As Double
    Dim Ai(150) As Double, Bi(150) As Double, Ci(150) As Double, EI(150) As Double
    Dim Ma() As Double
    Dim genre As Long
    Dim distance As Double, abscisse As Double
    'sorties :
    Dim Mt(25, 2) As Double, Th(25, 2) As Double, Fl(25, 2) As Double, Re(25, 2) As Double
    'autres :
    Dim i As Long, j As Long, l As Double
     
    ReDim Ma(nbt, nbt) As Double
    genre = 1
    Call cM(nbt, Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn, Ma(0, 0))
    Call cA(nbt, cod(0, 0), genre, Ma(0, 0), cod(0, 0), Rog(0), Rod(0), Rg(0), Rd(0), reaction(0), deplacement(0), Mb(0), Md(0), Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn)
    For i = 1 To nbt
        Call cT(nbt, cod(0, 0), pas, portee(i), abscisse, i, Ma(0, 0), cod(0, 0), Rog(0), Rod(0), Rg(0), Rd(0), reaction(0), deplacement(0), Mb(0), Md(0), Mt(0, 0), Th(0, 0), Fl(0, 0), Re(0, 0), Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn)
        For l = 1 To 3
            For j = 1 To 2 * pas
                moments(2 * (i - 1) * pas + j, l) = Mt(j, l - 1)
                tranchants(2 * (i - 1) * pas + j, l) = Th(j, l - 1)
            Next
            For j = 1 To pas
                flèches(2 * (i - 1) * pas + 2 * j - 1, l) = 1000 * Fl(j - 1, l - 1)
                flèches(2 * (i - 1) * pas + 2 * j, l) = 1000 * Fl(j, l - 1)
            Next
            réactions(2 * i - 1, l) = Re(0, l - 1)
            réactions(2 * i, l) = Re(1, l - 1)
        Next
    Next
     
     
    For j = 1 To 2 * pas * nbt
        'mini
        moments(j, 1) = moments(j, 1) + moments(j, 2)
        tranchants(j, 1) = tranchants(j, 1) + tranchants(j, 2)
        flèches(j, 1) = flèches(j, 1) + flèches(j, 2)
     
        'maxi
        moments(j, 3) = moments(j, 3) + moments(j, 2)
        tranchants(j, 3) = tranchants(j, 3) + tranchants(j, 2)
        flèches(j, 3) = flèches(j, 3) + flèches(j, 2)
    Next
     
    For j = 1 To 2 * nbt
        réactions(j, 1) = réactions(j, 1) + réactions(j, 2)
        réactions(j, 3) = réactions(j, 3) + réactions(j, 2)
    Next
     
    End Sub

Discussions similaires

  1. Réponses: 11
    Dernier message: 29/10/2014, 12h30
  2. Retrouver les options de compilation d'un programme
    Par Arrnno dans le forum AS/400
    Réponses: 3
    Dernier message: 06/04/2009, 17h51
  3. Retrouver les dll que charge un programme ?
    Par barbuslex dans le forum Windows
    Réponses: 2
    Dernier message: 23/03/2009, 18h59
  4. Retrouver les attributs d'un noeud...
    Par LLaurent dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/12/2003, 09h20
  5. retrouver les compsants FASTNET sous Delphi 7
    Par fandor7 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/06/2003, 18h11

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