Excel et RS232 ...

Signaler
Messages postés
10
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
24 novembre 2011
-
Messages postés
21
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
12 avril 2012
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
(Excel = VBA. Catégorie modifiée)
Messages postés
10
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
24 novembre 2011

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 ...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
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)
Messages postés
10
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
24 novembre 2011

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

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