Vai al contenuto
PLC Forum


Excel - Scrivere dei dati in seriale


luckylucky

Messaggi consigliati

Ciao, è tempo che cerco di creare una macro in Excel per inviare una o più celle alla seriale, ma visto la mia ignoranza in Visual Basic, sono fermo. Io sono un vecchio utilizzatore di Excel e conosco bene il vecchio linguaggio di Excel 4. Qualcuno mi può aiutare???? :(

Link al commento
Condividi su altri siti


ilmotoredel2000

Anche a me occorrerebbe qualcosa el genere, magari da tilizzare anche con MS ACCESS.

Ho provato a cercare nell'. del VBA qualcosa che assomigli al MSCOMM di Visual Basic ma non l'ho trovato.

Link al commento
Condividi su altri siti

Ciao, ho visto il tuo messaggio, io ho trovato qualche cosa ma siccome di Vb non ci capisco un acca e sinceramente mi manca il tempo, ti posso passare un codice che dovrebbe fare qualche cosa del genere in Vb di Excel; siccome è rimasto sul lavoro te lo posso dare domani; fammi sapere se tu sei in grado di capirlo...

Link al commento
Condividi su altri siti

...usate VBA, che poi non è tanto difficile. Personalmente ho iniziato a scrivere una banalissima macro per access, e ora mi scrivo i miei "bei" programmini in VB6.

Create un tasto sul vostro foglio e al click del pulsante associate il codice che scrive sulla seriale.

Utilizzando i tool (icona con il martelletto) di VBA create un oggetto Microsoft Communication Control MScomm (che è quello che vi permette di scrivere sulla seriale) settandone i parametri. Potete anche creare una piccoola ruotine in VBA per cambiare il settaggio della porta COM.

Utilizzando l'oggetto MSComm scrivete poi sulla porta.

L'. di VBA non da indicazioni su come si tratta l'oggetto MSComm, mentre quello di VB6 è molto completo.

Piccolo esempio (da autodidatta eh, per di più meccanico):

Private Sub BtnTxPeso_Click()

On Error GoTo Err_BtnTxPeso_Click

'================

'Visualizzazione del peso

'================

MSComm1.InputLen = 14

MSComm1.Output = "$01t75" & Chr$(13)

Sleep (250)

Val232$ = Val232$ & Me.MSComm1.Input

Me.Txt1.Text = Val(Right(Left(Val232$, 9), 6))

'===============

'richiesta stato ingressi

'===============

MSComm1.InputLen = 9

MSComm1.Output = "$01I48" & Chr$(13)

Sleep (250)

valing$ = valing$ & Me.MSComm1.Input

If valing$ = "&0110\00" & Chr$(13) Then

Me.Timer1.Enabled = False

MSComm1.Output = "$01U1154" & Chr$(13) 'accensione lampada

Sleep (3000)

MSComm1.Output = "$01U0054" & Chr$(13)

MsgBox "Peso registrato: " & Me.Txt1.Text

End If

exit_BtnTxPeso_Click:

Exit Sub

Err_BtnTxPeso_Click:

MsgBox Err.Number & " " & Err.Description

Resume exit_BtnTxPeso_Click

End Sub

Link al commento
Condividi su altri siti

ilmotoredel2000

Molto interessante. A suo tempo stavo sviluppando una applicazione che doveva inviare il contenuto di alcuni campo di alcune tabele di ACCESS su porta seriale. Il problema è che il VBA di ACCESS non conosceva il metodo MSCOMM (a me dava errore). Quindi dovetti rifare tutto in VB6 utilizzando un DATA CONTROL collegato al data base in oggetto, con conseguente complicazioe del lavoro.

Appena possibile proverò questo codice e vi farò sapere.

dato che l'argomento mi interessa ancora molto la mia mail è balagancik_at_balagancik.it

Link al commento
Condividi su altri siti

Ho fatto una prova con VBA di Access (Vers 2002 - Developer edition) e non ho problemi ad inserire un oggetto MSComm. ho provto anche ad inserire l'evento On Comm e pare che lo accetti

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...