Bonjour, je me présente david, ingénieur r&d. J'ai des notions en développement c et labview, et je suis malheureusement novice en VBA.
Je vous explique mon problème
Je développe une petite application via Excel.
Cette application doit commencer par établir un lien entre VBA(enfin donc Excel) et un logiciel tiers qui s'appelle Optima. Ce dernier est un logiciel d'acquisition pour un fluorimètre (mais bon ca à la limite on s'en fiche).
Ce logiciel est compatible dde et le fournisseur donne même un semblant de programme pour exemple que voici :
la partie send a command est plutot clair pour moi
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 Private Sub Command1_Click() Dim Cmd, Separator ' open DDE connection: If Text1.LinkMode = vbLinkNone Then Z = Shell("D:\Programme\BMG\OPTIMA\ExeDLL\FLUOstar", 4) ' start DDE Server Text1.LinkTopic = "FLUOstar|DDEServerConv1" ' set DDE topic Text1.LinkItem = "DdeServerStatus" ' set DDE item Text1.LinkMode = vbLinkManual ' choose link mode End If ' send a DDE command: Separator = Chr(13) & Chr(10) Cmd = "PlateOut" ' Create command string Cmd = Cmd & Separator & "User" ' Add parameters Cmd = Cmd & Separator & "0" Cmd = Cmd & Separator & "5000" Text1.LinkExecute Cmd ' send DDE macro command MsgBox "DDE command to OPTIMA sent.", 64 End Sub
Suite à des recherches sur internet j'ai compris à quoi servaient les linktopic linkitem et linkmode. Là encore rien de bien compliquer.
Bien sur l'adresse dans l'exemple n'est pas la bonne, là encore ce n'est pas la difficulté réelle (quoi que dans la véritable adresse qui se situe dans program files, il y a un espace, est-ce un problème pour VBA faut il mettre l'espace sous forme de code ?)
Non mon problème se situe au niveau de la variable text1 (déjà est ce une variable ?) dois je la définir comme étant un objet (comme une textbox ?) ou comme une variable string ?
le compilateur bloque donc sur la première ligne ou apparait text1.linkmode
idem dois-je déclarer Z
Bref cette étape est vraiment ce qui me bloque, en effet après ce n'est qu'une succession d'envoi de commande et d'apparitions de fenetre pour l'utilisateur ce qui est relativement simple à faire compte tenu de mes petites connaissances et des tutoriaux présents un peu partout notamment sur ce site bien riche en informations.
Merci d'avance de votre aide et de vos réponses
edit : au passage je sais que la connexion fonctionne l'éditeur du logiciel fournissant un espèce de mini programme basé sur le protocole dde qui permet de communiquer de manière simplifier avec le logiciel d'acquisition.
Partager