Hola Max !
Te cuento que ya lo tengo casi listo al programita, peeeeero ..... (siempre hay un pero, dijo Aitopes)
Al hecho de guardar el gráfico lo resolví de esta forma:
Set oSheet = oBook.Worksheets.Item
Hoy = Format(Now, "dd_mm_yyyy")
oSheet.SaveAs ("C:\Registros\" & Hoy & ".xls")
Que sería el segundo ejemplo que me pasaste, pero estoy teniendo un problema al leer el MSComm.
Con el PIC, cada 10 minutos envío al puerto serie lo siguiente :
SEROUT TX,84, [" ",DEC1 T," ",DEC1 H," "]
En el formulario, entre otras cosas tengo, un textbox y dos labels.
Estoy usando lo siguiente para leer el puerto :
***********************************************************
Private Sub Form_Load()
Dim CommPort As String, Settings As String
Dim BuferEntrada As String
MSComm1.CommPort = 1 'puerto com1
MSComm1.Settings = "9600,n,8,1" 'configuracion del puerto serie
MSComm1.PortOpen = True 'se abre el puerto para que funcione
MSComm1.RThreshold = 1 'cada byte recibido, dispara el evento OnComm
If MSComm1.CommEvent = comEvReceive Then 'si el puerto comienza a recibir .....
BuferEntrada = MSComm1.Input 'en esta variable se almacena lo que entra por el puerto serie
txtRecibir.Text = txtRecibir.Text & BuferEntrada 'acá "veo" lo que llega del puerto
End If
**************************************************************************
En el textbox, me sale perfecto los dos valores que te comentaba en el primer hilo, pero que en este caso ahora es con punto decimal.
Es decir, me sale bárbaro : 22,3 45,8 22,4 45,7 22,5 45,8 22,4 45,7 .......
Todo bárbaro, cada 10 minutos me larga un par de datos leídos (Ej: 22,3 45,8) y se apilan todos dentro del text box
El problema que tengo, es que quiero separar esos datos y ponerlos cada uno en un label distinto y no me sale.
Quiero tomarlos del BuferEntrada y siempre me muestra lo último de la transmisión.
En el último ejemplo que puse, me muestra siempre 45,8 el label.
El último código que probé es éste y tampoco me funcionó :
Label8.Caption = Left(Val(BuferEntrada), 4) 'sacar del bufer los 4 caracteres de la izquierda
Label9.Caption = Val(BuferEntrada) ' de bronca que ponga todo lo que hay en el bufer
Y nada ..... siempre solo lo último, mientras que el textbox acumula por esta línea
txtRecibir.Text = txtRecibir.Text & BuferEntrada
Entonces acumula y muestra todo perfecto.
He probado con el seteo del MSComm.InputLen y tampoco me funciona.
Al dejarlo si setear debiera guardar todo los caracteres recibidos en el bufer, pero cuando voy a buscarlos ....
sólo están los últimos.
Es como si se fragmentara lo que envío con el SEROUT.
Voy a seguir investigando y aprendiendo y naturalmente que acepto y deseo, sugerencias y enseñanzas.
Saludos !
Mario