Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
877 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-E] API EbExecuteLine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA-E] API EbExecuteLine

n°1365317
truman
Posté le 12-05-2006 à 16:43:01  profilanswer
 

Bonjour !
 
Le VB Script ne me convenant finalement que moyennement (les variables globales et les objets du programme sont inconnus dans le VBScript sauf si passage en paramétres....), j'étais tout heureux de trouver cette API me permettant d'exécuter du code ligne par ligne contenu dans un string (et qui , peut-être, me permettra d'utiliser mes variables comme bon me semble).
 
En réalité, je me suis galéré toute la matinée.
 
Il paraît que cette API fait partie de la librairie VBA6.DLL. En creusant un peu, j'ai lu aussi par-ci par-là que c'était une DLL localisée (VB6FR.DLL, VB6DE.DLL, etc).
 
Le fait est que VB6FR.DLL est présente sur mon système. Par contre, à l'exécution :
 

Citation :

Point d'entrée EbExecuteLine d'une DLL introuvable dans VB6FR.DLL


 
J'ai donc recherché cette fameuse VBA6.DLL. Je l'ai trouvé... mais impossible de l'enregistrer :
 

Citation :

VBA6.DLL a été chargé mais le point d'entrée DllRegisterServer n'a pas été trouvé.
VBA6.DLL n'apparaît pas comme étant un fichier .DLL ou .OCX


 
Et là pour le coup, si j'exécute mon programme en spécifiant VBA6.DLL en tant que librairie de mon API. Plaf, plantage total d'Excel.
 
J'ai fouiné un peu partout sans succès. J'avoue que je commence à désespérer. Voici mon code :
 

Code :
  1. Dim txt As String
  2.     Dim res As Boolean
  3.    
  4.     txt = "MsgBox ""Ca tourne"""
  5.     res = FExecuteCode(txt)
  6.     MsgBox "Statut :" + res


 

Code :
  1. Private Declare Function EbExecuteLine Lib "vba6.dll" _
  2.         (ByVal pStringToExec As Long, ByVal Foo1 As Long, _
  3.         ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long
  4. Function FExecuteCode(stCode As String, _
  5.             Optional fCheckOnly As Boolean) As Boolean
  6.     FExecuteCode = EbExecuteLine(StrPtr(stCode), 0&, 0&, Abs(fCheckOnly)) = 0
  7. End Function


 
Merci de votre aide

mood
Publicité
Posté le 12-05-2006 à 16:43:01  profilanswer
 

n°1365589
truman
Posté le 13-05-2006 à 12:11:52  profilanswer
 

Up  :pfff:

n°1366224
truman
Posté le 15-05-2006 à 10:36:33  profilanswer
 

Nom de dioû
 
Ca fonctionne sur mon PC perso. J'ai Visual Basic 6 d'installé sur mon poste ça doit être pour ça.
Je peux faire une demande d'installation sur mon poste de travail mais en définitive ça ne change rien parce que dès que je vais exécuter mon application (VBA Excel) sur un poste n'ayant pas VB6 d'installé ça va foiré royalement.  :cry:  
 
HELP !  :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-E] API EbExecuteLine

 

Sujets relatifs
[API C++] plantage du senddlgitemmessage(..)Excel VBA - Double clique
[VBA] Appel dynamique à une procédure[VBA EXCEL] Accéder aux éléments de dessin d'un graphique Excel
[VBA ACCESS] Créer une table à partir des noms de fichiers[RESOLU] "Incompatibilité de type" sur VBA
Enregistremt de fichier : choix du répertoire et du nom de fichier VBA[VBA Excel] Input en option
[VB/VBA/VBS] Divers petits coups de mains bienvenus[VBA] Creer une macro qui echange des donnees entre feuilles
Plus de sujets relatifs à : [VBA-E] API EbExecuteLine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR