Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 01/07/2009, 16h56   #1
Membre régulier
 
Inscription : juillet 2009
Messages : 115
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 115
Points : 87
Points : 87
Par défaut Ouverture d'une connexion DDE de VBA vers un logiciel tiers

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 :

Citation:
Code :
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
la partie send a command est plutot clair pour moi
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.

Dernière modification par david_atx ; 01/07/2009 à 18h13.
david_atx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2009, 11h59   #2
Membre Expert
 
Avatar de aalex_38
 
Inscription : septembre 2007
Messages : 1 570
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 1 570
Points : 1 709
Points : 1 709
Citation:
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 ?
trouvé sur internet :
Citation:
Notons aussi que lors d'une liaison DDE, vous ne pouvez transférer que les données qui sont dans les contrôles Label, TextBox et PictureBox.
Par contre je n'ai pas encore trouvé comment récupérer ces propriétés .LinkTopic ...
__________________
aalex_38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 19h57.


 
 
 
 
Partenaires

Hébergement Web