Aymeric44000
Messages postés15Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention21 juin 2007
-
20 juin 2007 à 11:50
Aymeric44000
Messages postés15Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention21 juin 2007
-
21 juin 2007 à 13:51
Bonjour, je développe actuellement un programme qui à l'aide d'un bouton "Mesure" mesure la valeur d'un capteur et avec un autre bouton ( Envoie), j'envoie cette valeur sur le port.
En fait, mon problème, c'est que j'aimerais prendre 10 mesures et afficher chaque mesure dans un textbox a tour de rôle; je m'explique :
_ Appui sur "Mesure" -> Affichage de la valeur dans le Txtbox1 -> Appui sur "Envoie" ->envoie de cette mesure via port com -> Txtbox1 devient d'une autre couleur
_ Appui sur "Mesure" -> Affichage de la valeur dans le Txtbox2 -> Appui sur "Envoie"->envoie de cette mesure via port com -> Txtbox2 devient d'une autre couleur
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 juin 2007 à 12:39
Re,
Dans un projet neuf, regarde ce que fait ce code.
Option Explicit
'Une feuille avec Dix Textbox
'appelé TxtBox (index de 0 à 9)
'un bouton appelé Mesure
'un bouton appelé Envoie
'represente l'indice courant pour
'la gestion du remplisasge
Private IndiceCourant As Integer
'Flag pour etre sur d'avoir appuyer sur mesure
Private CanSend As Boolean
Private Sub Envoi_Click()
'si pas autorise a envoyer on sort
If Not CanSend Then Exit Sub
TxtBox(IndiceCourant).BackColor = vbBlue
Call EnvoieValeurCOMM(TxtBox(IndiceCourant).Text)
IndiceCourant = IndiceCourant + 1
CanSend = False
End Sub<hr />
Private Sub Form_Load()
Randomize
IndiceCourant = 0
CanSend = False
End Sub<hr />
'simule l'envoie de valeur inutile pour toi
Private Sub EnvoieValeurCOMM(ByVal Val As String)
MsgBox "envoi " & Val & " par port comm"
End Sub<hr />
'Simule les valeur (inutile pour toi)
Private Function GetValeur() As Integer
GetValeur = Int((Rnd * 15000) + 1)
End Function<hr />
Private Sub Mesure_Click()
'pour ne pas lire plusieur fois la valeur
If CanSend Then Exit Sub
TxtBox(IndiceCourant).Text = GetValeur
CanSend = True
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]
Aymeric44000
Messages postés15Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention21 juin 2007 20 juin 2007 à 13:59
Désolé mais ton code ne fonctionne pas, en fait je suis débutant, je comprends pas très bien .
Moi en fait pour afficher ce qu'il y a dans le txtbox j'utilise :
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 juin 2007 à 14:05
Salut,
Qu'est ce qui ne fonctionne pas , y a t il des erreurs?
Je l'ai testé chez moi et ca fonctionne (du moins pour ce que je comprends de ton problème)
Qu est ce que tu ne comprends pas?
avec les correction ou il faut le code serait
Private Sub Envoi_Click()
'si pas autorise a envoyer on sort If Not CanSend Then Exit Sub
TxtBox(IndiceCourant).BackColor = vbGreen
MSCOMM.output = TxtBox(IndiceCourant).Text IndiceCourant = IndiceCourant + 1
CanSend = False
End Sub
Pas très compliquer.
si tu ne comprends pas il faut expliquer mieux ton problème je ne suis pas devin .
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 20 juin 2007 à 14:13
Bonjour Julien,
pose-lui (à tout hasard) les 2 questions suivantes :
1) développes-tu bien sous VB6 et pas sous VBA ? (on ne sait jamais...)
2) as-tu bien créé un groupe de contrôles indexés ?
Aymeric44000
Messages postés15Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention21 juin 2007 20 juin 2007 à 14:32
Julien j'ai réussi à simuler le fonctionnement de ton premier programme mais en fait tu vois je teste avec hyper terminal et j'aimerai par exemple: j'écrit 1000 sur hyperterminale, je fais mesure j'ai 1000 qui s'affiche dans le textbox1 ensuite je l'envoie, la case devient verte. Ensuite j'écrit 2000 dans hyperterminale, je fais mesure j'ai 2000 qui s'affiche dabs le textbox2 ensuite je fais envoie , la case devient verte.
Voila j'espère que vous m'avez compris et désoler si je ne suis pas très claire en tout cas merci pour votre aide
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 juin 2007 à 14:47
Salut,
Désolé mais je pense qu'avec ce que je t'ai proposé tu devrais t'en sortir.
Car là franchement jene vois pas ou est ton problème.
Tu arrive bien à récupérer les données envoyéess depuis l'hyperterminal non?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 juin 2007 à 15:34
Re,
Est ce que au moins tu travailles avec un groupe de contrôle comme je te proposais????
essaie
Option Explicit
Option Explicit
'Une feuille avec Dix Textbox
'appelé TxtBox (index de 0 à 9)
'un bouton appelé Mesure
'un bouton appelé Envoie
'represente l'indice courant pour
'la gestion du remplisasge
Private IndiceCourant As Integer
'Flag pour etre sur d'avoir appuyer sur mesure
Private CanSend As Boolean
Private Sub Envoi_Click()
'si pas autorise a envoyer on sort
If Not CanSend Then Exit Sub
TxtBox(IndiceCourant).BackColor = vbGreen
MSComm.Input = TxtBox(IndiceCourant).Text
IndiceCourant = IndiceCourant + 1
CanSend = False
End Sub<hr />Private Sub Form_Load()
Randomize
IndiceCourant = 0
CanSend = False
End Sub<hr />
Private Sub Mesure_Click()
'pour ne pas lire plusieur fois la valeur
If CanSend Then Exit Sub
TxtBox(IndiceCourant).Text = MSComm.Output
CanSend = True
End Sub<hr />
Aymeric44000
Messages postés15Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention21 juin 2007 20 juin 2007 à 15:50
Il y a rien à faire sa marche pas en fait quand je fais cette fonction sur un projet vierge sa marche mais quand je l'incorpore dans mon programme cela ne fonctionne pas
Tu as reçu mon code ???
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 juin 2007 à 16:07
Salut,
Quand je dit par mail, cela permet d'envoye par ZIP tout le projet ce qui m'evite de le refaire de mon coté et qui en plus permet d'avoir strictement le meme.