Hurra es funtioniert,

danke Frank, es lag wirklich an den 5 Bytes! Zwar habe ich den Hinweis gelesen, aber nachdem ich in den Quellcode gesehen habe

#######################################
Private Sub buttSendByte_Click()
Dim i As Integer
buttSendByte.Enabled = False

i2c_start
i2c_SendByte (txtwert(0))
For i = 1 To 5
If txtwert(i) = "" Then Exit For
i2c_SendByte txtwert(i)
delay
Next i
i2c_stop

ZeigePegel
buttSendByte.Enabled = True
End Sub
#########################################

war ich mir sicher, dass die Abfrage ***If txtwert(i) = "" Then Exit For*** dazu dient, freigelassene Textfelder abzufangen.
Um solch einen Fehler zukünftig abzufangen, könnte man die Zeile abändern in:
If txtwert(i) = "" Then txtwert(i)=0

Uli