VBA excel userform et textbox

Fermé
Module_29 Messages postés 26 Date d'inscription jeudi 12 avril 2012 Statut Membre Dernière intervention 8 juin 2012 - 15 mai 2012 à 15:31
f894009 Messages postés 17214 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 26 décembre 2024 - 15 mai 2012 à 20:27
Bonjour,

j'aimerai savoir comment afficher le contenu d'une cellule dans une textbox elle même dans une userform ?

je sais que c'est simple, mais je n'y arrive pas. je sais pas pourquoi ...


Voici la partie pour le USERFORM & textbox


Private Sub TextBox1_Change()

End Sub

Private Sub UserForm_Initialize()


UserForm1.TextBox1.Value = Sheets("Feuil1").Range("rep").Value


End Sub





Et voici la partie pour le code principal. je reçois mes trames dans le contenu de cellule rep. mais impossible de les envoyer dans une USerform textbox.



Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMillisenconds As Long)
                                                                                                                                                         
Private Sub CommandButton1_Click()

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False  ' si le bouton 1 = true alors on fait appel à la fonction test_liaison

Call test_liaison

'UserForm1.Show                                            ' affiche l'userform

End Sub
Sub test_liaison()

Dim trame_recue As String
Dim Port As Integer
Dim buffer As String
Dim configuaration As Integer

mouchard = 1


Port = Cells(4, 6).Value
configuration = Cells(6, 2).Value


MSComm1.CommPort = Port           'Comm1.CommPort = Sheets("Test&Réglage & PV").Range("port").Value      'permet de recuperer le numero du port com
MSComm1.Settings = configuration  'configuration liaison série
MSComm1.PortOpen = True           'ouverture du port pour debuter la communication
MSComm1.SThreshold = 1
MSComm1.InputLen = 0              ' lecture total du buffer
 

MSComm1.Output = ActiveSheet.Cells(6, 9).Value & vbCrLf       ' envoi la saisie dans la cellule D2

 
Do
  DoEvents                                                    'indispensable sinon ça marche pas ( boucle de reception )
   trame_recue = trame_recue & MSComm1.Input
i = i + 1
       If i = 100000 Then                                      'incrementation d'une variable temoin de la non reception d'un caractere
           MsgBox ("probléme de connection")
       
       End If


Loop Until InStr(trame_recue, vbCrLf)     ' condition pour boucler

Sheets("Feuil1").Range("rep").Value = trame_recue

fin:
MSComm1.PortOpen = False                                 'on ferme le port afin de terminer la communication
If mouchard = 1 Then                                     'si une trame a bien été envoyée
    MsgBox ("Opération terminée avec succès!")           'alors les caracteres sont bons et la communication est correcte
Else
    MsgBox ("Test échoué... nombre de trame envoyée par le pc :" & mouchard)    'sinon pb dans les caracteres
End If


End Sub 'fin





Cordialement,



<config>Windows XP / Firefox 12.0</config>
A voir également:

3 réponses

f894009 Messages postés 17214 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 26 décembre 2024 1 711
15 mai 2012 à 16:43
Bonjour,

TexteBox:

Nom de feuille a adapter:

Private Sub UserForm_Initialize()
Me.TextBox1.ControlSource =Range("rep").Address
End Sub

'ou propriete de TexteBox1

'ControlSource rep
0
Module_29 Messages postés 26 Date d'inscription jeudi 12 avril 2012 Statut Membre Dernière intervention 8 juin 2012
15 mai 2012 à 17:15
merci j'ai réussie à trouver,


cependant j'ai une autre question.


Comment pourrais-je faire pour afficher mes réponses dans le texte box pour

qu'elles soient écrite correctement.

je m'explique. Par exemple j'envoie une commande VA ( qui demande au micro.c une tension ) je récupère donc dans ma text box une réponse

or elle est écrite comme t'elle pour Va(envoyé) j'ai rep : RVA001436¶ ( oui car il
n'y a aucun espace dans le message. la longueur de l'opérande est prédéfinie, il est donc nécessaire de faire précéder par des 0 les opérandes les plus courtes (ex: 0420 pour 420 V )

j'aimerai donc récupérer 1436 V dans ma textbox et pas RVA001436¶.

Comment faire ?



Cordialement
0
f894009 Messages postés 17214 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 26 décembre 2024 1 711
15 mai 2012 à 20:27
Re,

https://www.cjoint.com/?BEpuvU0v89u

Vous avez Trois facons de faire pour obtenir ce que vous voulez. A vous de choisir celle qui vous convient.

Bonne suite
0