# rs 232 nach Excel in VBA



## lorenz2512 (31 Dezember 2004)

hallo,
wie bekommt man es hin, das man z.b. von einem messgerät über rs232 die daten direkt nach excel bekommt????? das messgerät sendet die daten im textformat und braucht zum anstoss ein "m", mscomm wie in normal vba haut nicht hin, da ich das plugin nicht installiert bekomme.

und da ich gerade dabei bin, noch eine frage: mscomm sendet alles in text code, da aber manche messgeräte daten haben wollen, geht weder auslesen noch steuern.

das alles sollte in vba doch machbar sein, betriebssystem win 2000 und xp.
wer weiss rat????
mfg
dietmar




 :twisted: wer sorgen hat, hat auch likör. :twisted:


----------



## Oberchefe (2 Januar 2005)

Entweder eine Exe schreiben welche im CSV-Format speichert. Dies läßt sich dann im Excel aufmachen. Alternativ eine Exe schreiben welche per DDE direkt ins Excel-Sheet schreibt. 

Sollte dann ungefähr so aussehen:


```
Private Sub Form_Load()

'for file read/write
CommonDialog1.FileName = "C:\Daten\Messdaten.xls"

'Start Excel and open new spreadsheet
Set exlApp = New Excel.Application
exlApp.Workbooks.Add
Set exlWSheet = exlApp.Workbooks(1).Worksheets(1)
exlApp.Visible = True
exlRow = 1
exlCol = 1

End Sub



Private Sub Form_Unload(Cancel As Integer)

On Error GoTo exlerror

Set exlWSheet = Nothing
'CommonDialog1.ShowSave
'exlApp.Workbooks(1).SaveAs filename
exlApp.Quit
Set exlApp = Nothing
End

exlerror:
    'do NOTHING
    End
End Sub


Private Sub wsTCPDevice_DataArrival(ByVal bytesTotal As Long)

Dim str As String

str = ""
    
wsTCPDevice.GetData str
putDataInExcel (str)

End Sub


Private Function putDataInExcel(data As String)
'Called from wsTCPDevice_DataArrival
'parses out data from In-Sight and puts it directly into excel spreadsheet

On Error GoTo excelError

Dim index As Integer
'Dim dataval As String
Dim delim As String
Dim term As String
term = vbCrLf
delim = txtDelimiter

'reset exlRow
exlRow = 1

'get index of first delimiter
index = InStr(data, delim)
While index <> 0
    'pick off data and put into excel
    exlWSheet.Cells(exlCol, exlRow) = Left(data, index - 1)
    'trim data off string
    data = Mid(data, index + 1)
    exlRow = exlRow + 1
    index = InStr(data, delim)
Wend
'trim off termininator and
'get last piece of data into excel
exlWSheet.Cells(exlCol, exlRow) = Mid(data, index + 1, InStr(data, term) - 1)

'add dateStamp if box is checked
If chkDateStamp.Value = 1 Then
    exlRow = exlRow + 1
    exlWSheet.Cells(exlCol, exlRow) = Now
End If

exlCol = exlCol + 1
Exit Function

excelError:
    'Excel is probably closed
    MsgBox "Error: Excel was shut down", , "Error: " & Err.number & " " & Err.description

End Function
```

Der Code stammt der Faulheit halber aus einem Beispiel-Programm von Cognex, welches Daten per TCP/IP empfängt und in ein Excel-Sheet schreibt. Der Teil "Private Sub wsTCPDevice_DataArrival" muß in Deinem Fall durch die Mimik rund um die serielle Schnittstelle ersetzt werden.


----------



## lorenz2512 (2 Januar 2005)

hallo chefchen,
das trifft die sache nicht genau, es geht um die komunikation zur rs232 zu excel.
mfg 
dietmar






 :shock: netzausfall am morgen bringt kummer und sorgen :roll:


----------



## sps-concept (2 Januar 2005)

*Excel*

Hallo Dietmar,

ich hab da was um aus Excel Daten seriell zu senden... geht sicher auch in die andere Richtung. Kann aber erst morgen gucken.

MfG
André Räppel


----------



## lorenz2512 (3 Januar 2005)

hallo,
kennt das jemand ???? taucht das was ????
MSR mit Word und Excel  
 Artikelnummer 9783772340949 
ISBN [ISBN] 
Autor H.J. Berndt / B. Kainka 
Seiten 267 
Serie Franzis PC & Elektronik 


mfg 
dietmar


Lache nie über die Dummheit der anderen. Sie ist deine Chance. :twisted:


----------



## zotos (12 Juni 2005)

http://www.mikrocontroller.net/forum/read-4-194813.html#194826


----------



## lorenz2512 (12 Juni 2005)

Vielen Dank Zotos,
in der Zwischenzeit hab ich mir VB PRO zugelegt und seitdem kann ich auch auf MSCOMM zugreifen, aber werde ich mal ausprobieren denn nicht alle haben VB PRO.

Danke


dietmar


----------



## Unreal (19 Juni 2005)

Servus,

ich bin's nochmal 
Hätte vielleicht noch ne alternative für dich:

Das Programm nennt sich Profilab-expert
damit kann man schon sehr viele nützliche Sachen 
machen (was COM und USB betrifft)
Die haben auf ihrer Website auch andere nützliche
Programme 
Ich glaube es gibt von allen Progs ne 
30 Tage Testversion
, aber da musst du selber mal schauen

http://www.abacom-online.de

MfG Unreal

P.S.: kann sein, daß es für deine Anwendung nicht gerade passend ist,
aber reinschauen lohnt sich, wenn du das Programm noch nicht kennst


----------



## lorenz2512 (19 Juni 2005)

Hallo,
da ich Dasylab am laufen habe weiß ich was Du meinst, ja mit solchen Programmen läßt sich manches anstellen, alles was eine serielle Schnittstelle hat läßt sich anbinden (dauert manchmal). Ich hatte zuerst solche Programme wie WIN Wedge, Windmill... am start, aber die Doku ist Besche...den (1 zu 1 aus der Doku genommen, und geht nicht). 
Aber hier ging es darum nach Excel von Messgerät und oder Barcodescanner Daten zu importieren und für einfache ASCII Codes ist MSCOM gut. Es gibt auch sehr gute freie RS232 Treiber, bloß andere sollen ja auch mit klar kommen.
Ich merke schon Du bist auch dauernt auf der Suche nach guter Soft, und wirst mir noch gute Tips geben können.

mfg

dietmar


----------



## Anonymous (20 Juni 2005)

Ja Mscom deckt das meiste ab, aber gibt es nur bei VB pro  
Aber der RS232 Treiber von Kanika ist auch nicht schlecht.

Gruß

Jonko


----------



## Unreal (20 Juni 2005)

Hab halt nur gedacht, weil du messgerät erwähntest

Gruß Unreal


----------



## lorenz2512 (20 Juni 2005)

Hallo,
konkret ging es um ein Messwert per Knopfdruck in Excel zu Übernehmen, und ebend einen Barcode einlesen, entweder mit Tasturadapter oder seriell. Tja alles wo ein Kabel dranhängt wird einem aufgehuckt, und wenn kein Kabel dran ist, wird eins drangemacht :lol: .

mfg

dietmar


----------

