Excel et RS232 ...

fouding69
Messages postés
10
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
24 novembre 2011
- 26 oct. 2007 à 20:32
julienexam
Messages postés
21
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
12 avril 2012
- 5 avril 2012 à 16:11
Bonjour
Pour me mettre "le pied à l'étrier", je voudrais réaliser une application très simple sous Excel : envoyer une commande ASCII vers le port RS232 de mon PC, lorsque je clique sur un bouton créé via le mode développeur.
Je sais que je dois installer l'application XL_RS232 et que je dois écrire du code derrière le bouton, mais mes compétences (un peu étendu en language Excel) s'arrête la en VB et macro !

la trame à expédier sur le port série est du genre "#01010D". je dois travailler sur COM1 en 9600bds, sans parité, 1 stop.
Quelu'un aurait-il la gentillesse de m'adresse un fichier excel avec ce micro exemple afin que je comprenne bien le mécanisme (codes, utilisation de XL_RS232, ouverture du port série .....)

un email : fouding@free.fr

1000 mercis

Fouding

6 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
27 oct. 2007 à 02:10
Salut
L'utilisation de MSComm32 est facile pour l'émission :
-1- Paramétrage du composant :
   MSComm1.CommPort = 1   ' Com1
   MSComm1.Settings = "9600,N,8,1"   ' 9600 bauds, pas de parité, 8 bits de données et 1 bit d'arrêt.
   MSComm1.PortOpen = True   ' Ouvre le port.
-2- Envoi de données :
Tu dis vouloir envoyer #01010D.
En fait, cela ressemble à un format hexadécimal : 3 caractères : 01, 01 et 0D (décimal 1, 1 et 13).
La solution la plus simple est d'envoyer les codes ASCII correspondant à ces codes :
   MSComm1.Output Chr$(01) & Chr$(01) & Chr$(13)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
27 oct. 2007 à 02:10
(Excel = VBA. Catégorie modifiée)
0
fouding69
Messages postés
10
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
24 novembre 2011

27 oct. 2007 à 07:48
Merci de cette réponse rapide jack (couche-tard dis donc ...)
Bon, ça commence :
j'ai donc écrit ça derrière mon bouton :

Sub Bouton1_Clic()
MSComm1.CommPort = 1 ' Com1
MSComm1.Settings = "9600,N,8,1" ' 9600 bauds, pas de parité, 8 bits de données et 1 bit d'arrêt.
MSComm1.PortOpen = True ' Ouvre le port.
MSComm1.Output Chr$(1) & Chr$(1) & Chr$(13)
End Sub

et j'ai un message d'erreur 424 : "Objet requis"
et cette ligne est surlignée en jaune :
MSComm1.CommPort = 1 ' Com1

MSComm ne doit-il pas être installé ou activé ?

Merci d'avance ... désolé de ces questions plus que basique ...
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
27 oct. 2007 à 14:30
Re
Oui, bien sûr, il faut avoir chargé le composant MSComm32 :
- Il faut avoir chargé une UserForm - obligatoire pour supporter le composant
- Une fois le UserForm affiché, tu vas dans le menu "Outils", "Contrôles supplémentaires"
- Dans la fenêtre qui s'est ouverte, tu recherches "Microsoft Communications Control, version 6.0" qui correspond au fichier MSComm32.OCX qui est sous System32
- Dans la mini-fenêtre nommée "Boîte à outils" qui s'est ouverte à la création de ta UsertForm, une nouvelle icône est apparue : un petit téléphone jaune.
- Tu cliques dessus puis tu vas sur ta UserForm pour dessiner un carré dans lequel le composant s'inscrira (le dessin n'est pas visible en mode Run)
- Par défaut, cette occurence du composant s'appelle "MSComm1" (fenêtre des propriétés) et tu peux choisir de faire les réglages de port, vitesse ... dans la fenêtre de propriétés au lieu de les faire dans le code (le code écrase ceux prévus dans les propriétés).

Voilà, Les lignes de programme doivent se trouver dans la UserForm qui supporte le MSComm1 que tu viens de créer.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fouding69
Messages postés
10
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
24 novembre 2011

27 oct. 2007 à 18:20
Merci pour tes lumières
Le néophyte que je suis s'attele à tes conseils ...
Bonne fin de journée.
0
julienexam
Messages postés
21
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
12 avril 2012

5 avril 2012 à 16:11
Je sais que le sujet date mais je n'arrive pas à appliquer la solution donnée par jack.
En effet quand je pose le " téléphone jaune " sur ma UserForm, cela m'indique : " Le sujet n'est pas approuvé pour l'action spécifié ".

Quelqu'un sait il pourquoi?

julienexam
0