[VBA-E] API EbExecuteLine

API EbExecuteLine [VBA-E] - VB/VBA/VBS - Programmation

Marsh Posté le 12-05-2006 à 16:43:01    

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

Reply

Marsh Posté le 12-05-2006 à 16:43:01   

Reply

Marsh Posté le 13-05-2006 à 12:11:52    

Up  :pfff:

Reply

Marsh Posté le 15-05-2006 à 10:36:33    

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 !  :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed