Forum: PC-Programmierung COM-Port Auslesen und an EXCEL-Datei senden


von Manfred (Gast)


Lesenswert?

Hallo,

ich suche ein Programm oder einen EXCEL-Skript mit welchem ich Daten die 
über den COM-Port gesendet werden in EXCEL einlesen lassen kann. Hat 
jemand zufällig ein fertiges Programm für so etwas ?


MfG

Manfred

: Verschoben durch User
von Prog R. (daniel_v)


Lesenswert?


von Manfred (Gast)


Lesenswert?

Vielen Dank,

ich werde mich gleich heute Abend nach der Abreit hinsetzen und es 
ausprobieren :)

von Horst (Gast)


Lesenswert?

Was kommen da für Daten, dass du das unbedingt in Excel packen musst?

Klingt eher wieder wie ein Fall: "Ich kenne nur Excel für Daten"

von C. M. (chrisso1986)


Lesenswert?

16Bit Zahlenwerte die ich in EXCEl Abspeichern möchte

von C. M. (chrisso1986)


Lesenswert?

Also vielen Dank, hat alles super geklappt vll. kann mir jemand noch 
eine Frage zu dem Quellcode beantworten.

Ich würde gerne wissen, wo man in dem Quellcode die Zelle festlegen kann 
wo ich die Dateien gerne abgespeichern möchte und ob es auch möglich ist
immer nur den vorhandenen Wert durch den aktuellen zu ersetzen. Jetzt 
werden die daten in der ersten Spalte abwärts abgespeichert.

Vielen Dank schon mal.

MfG

------------------------------------------------------------------------ 
---
------------------------------------------------------------------------ 
---

Dim buf As String 'Buffer for incoming serial data
Dim cell_idx As Integer 'The row number cell to store a received barcode

Private Sub StrokeReader1_CommEvent(ByVal Evt As StrokeReaderLib.Event, 
_
                                    ByVal data As Variant)
  Select Case Evt  'Can be EVT_DISCONNECT or EVT_DATA or EVT_SERIALEVENT
    Case EVT_DISCONNECT 'if USB serial port adapter is just disconnected 
from the PC
        MsgBox "Serial port converter disconnected"
    Case EVT_CONNECT
        MsgBox "Connected" 'if RS232 or RS485 port adapter is just 
connected to USB bus

    Case EVT_DATA  'Incoming serial data
        buf = buf + StrokeReader1.Read(Text) 'Incoming serial data 
accumulated in buf
        Do
           LF = InStr(buf, Chr(10)) 'Most of scanners send ASCII <LF> 
after each barcode

           If LF = 0 Then Exit Do 'Waiting for ASCII <LF> to be received

           s = Left(buf, LF - 1) 'Copy the data before <LF> code as the 
barcode text
           s = Replace(s, Chr(13), "") 'Some scanners could send 
<CR><LF>. Remove <CR> if present

           buf = Right(buf, Len(buf) - LF) 'Cut the parsed data from the 
buffer
           'This is useful if the external hardware sends multiple 
barcodes in a time.

           cell_idx = cell_idx + 1 'increment the row number of cell 
where the barcode will be stored
          Cells(cell_idx, 1) = s
         Loop
  End Select
End Sub

von Prog R. (daniel_v)


Lesenswert?

C. M. schrieb:
> Also vielen Dank, hat alles super geklappt vll. kann mir jemand noch
> eine Frage zu dem Quellcode beantworten.
>
> Ich würde gerne wissen, wo man in dem Quellcode die Zelle festlegen kann
> wo ich die Dateien gerne abgespeichern möchte

  cell_idx = cell_idx + 1 'increment the row number of cell
  Cells(cell_idx, 1) = s

Du kannst die Variable cell_index, die hier bei jedem neuen, empfangenen 
Datenwort um 1 erhöht wird, schon vorher auf einen Wert initialisieren, 
bzw. einfach einmal ein Offset dazuaddieren (achtung, nicht immer :) )
cell_idx und 1, also die beiden Argumente in Cells (x,y), geben Reihe 
und Spalte an.

> und ob es auch möglich ist
> immer nur den vorhandenen Wert durch den aktuellen zu ersetzen. Jetzt
> werden die daten in der ersten Spalte abwärts abgespeichert.

Klar, indem du einfach Cells(x, y) = s schreibst, wobei x und y 
konstante Zahlen sind und wieder Reihe und Spalte darstellen. z.B. 
Cells(5,3) = s

> Vielen Dank schon mal.

Kein Problem.

: Bearbeitet durch User
von hj (Gast)


Lesenswert?

test

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.