Private Sub UserForm_Activate()
'Vider le buffer
MSComm1.InBufferCount = 0
'choisir un port série
MSComm1.CommPort = 2 ' 1 est le n° de port que vous pouvez modifier
'Paramétrage du port; les valeurs sont fournies par le constructeur de l'appareil.
'Ces valeurs peuvent être entrées ici (pas très "propre"!)
'ou dans une procédure d'initialisation (c'est mieux)
'ou dans la propriété "Setting" du contrôle
'L'idéal étant d'offrir à l'utilisateur la possibilité de changer ces valeurs à partir d'un menu "Réglage"
'La balance utilisée dans cet exemple requiert les valeurs suivantes: 1200 bauds, bit de parité, 7 bits de données, bit d'arrêt
MSComm1.Settings = "1200,o,7,1"
' indique au contrôle qu'il doit lire 1 seul caractère
'ce caractère servira à repérer la stabilisation de la balance
'ouvre le port
'Boucle dans le vide tant que le caractère lu n'est pas un signe plus (+)
MSComm1.InputLen = 20
MSComm1.PortOpen = True
'Stop
Application.Wait (Now + TimeValue("0:00:01"))
'Application.Wait Now + (TimeValue("00:00:01") / 1000) * 750
'Label1.Caption = MSComm1.Input
texte = MSComm1.Input
'MsgBox (texte)
nbcar = Len(texte)
'Cells(2, 1).Value = texte: Cells(2, 2).Value = nbcar
'If Left(texte, 1) = "N" And ActiveCell.Offset(-1, 0).Value <> texte And nbcar = 20 Then ActiveCell.Value = texte: Beep: ActiveCell.Offset(1, 0).Range("A1").Select
If Left(texte, 1) = "N" And ActiveCell.Offset(-1, 1).Value <> texte And nbcar = 20 Then ActiveCell.Offset(0, 1).Value = texte: If ActiveCell.Offset(-1, 0) > 100 Then ActiveCell.Value = 1 Else inc: Beep
'ActiveCell.Value = texte: Beep
'nbcar = Len(texte): If nbcar = 20 Then Cells(2, 1).Value = texte: Cells(2, 2).Value = nbcar
'Application.Wait (Now + TimeValue("0:00:01"))
'MsgBox (texte)
'ferme le port
MSComm1.PortOpen = False
texte = ""
Unload USF_balance
'ActiveCell.Offset(1, 0).Select
End Sub
Sub inc()
ActiveCell.Value = Format(Cells(ActiveCell.Rows.Row - 1, ActiveCell.Columns.Column).Value + 1, "00")
End Sub