CDbl - Typen unverträglich

Hallo Liebe Experten

Hab ein Problem mit dem Befehl CDbl

Private Sub BChange\_Click()
 Dim Row As Integer
 Dim a As Double, b As Double, c As Double
 Dim s1 As Variant, s2 As Variant

 s1 = fMainForm.MSFlexGrid1.TextMatrix(Row, 4)
 s2 = fMainForm.MSFlexGrid1.TextMatrix(Row, 5)

 a = CDbl(s1)
 c = CDbl(s2)

End Sub

Mit diesem Code erhalte ich einen Laufzeitfehler. (Typen unverträglich)
Laut der HTML-Hilfe muss der Befehl aber so funktionieren. Ich habs auch schon mit s1 und s2 als Strings probiert. Leider mit dem selben Ergebniss.

Was mache ich falsch?
Danke für die Hilfe
Gruß Andreas

Hallo,

Hab ein Problem mit dem Befehl CDbl

Mit diesem Code erhalte ich einen Laufzeitfehler. (Typen
unverträglich)
Laut der HTML-Hilfe muss der Befehl aber so funktionieren. Ich
habs auch schon mit s1 und s2 als Strings probiert. Leider mit
dem selben Ergebniss.

Was mache ich falsch?

wenn s1 und s1 Zahlen enthalten, sollte das gehen. Wenn nicht, dann nicht. :smile:

Probier mal …

Private Sub BChange\_Click()
 Dim Row As Integer
 Dim a As Double, b As Double, c As Double
 Dim s1 As String, s2 As String
 s1 = fMainForm.MSFlexGrid1.TextMatrix(Row, 4)
 s2 = fMainForm.MSFlexGrid1.TextMatrix(Row, 5)

 If IsNumeric(s1) Then
 a = CDbl(s1)
 Else
 a = 0
 End If

 If IsNumeric(s2) Then
 c = CDbl(s2)
 Else
 c = 0
 End If

End Sub

Gruß, Rainer
PS. Die erste Version hatte einen Fehler, den habe ich zu spät gsehen. :smile:

Hallo,

Hab ein Problem mit dem Befehl CDbl

Mit diesem Code erhalte ich einen Laufzeitfehler. (Typen
unverträglich)
Laut der HTML-Hilfe muss der Befehl aber so funktionieren. Ich
habs auch schon mit s1 und s2 als Strings probiert. Leider mit
dem selben Ergebniss.

Was mache ich falsch?

wenn s1 und s1 Zahlen enthalten, sollte das gehen. Wenn nicht,
dann nicht. :smile:

Probier mal …

Private Sub BChange_Click()
Dim Row As Integer
Dim a As Double, b As Double, c As Double
Dim s1 As String, s2 As String
s1 = fMainForm.MSFlexGrid1.TextMatrix(Row, 4)
s2 = fMainForm.MSFlexGrid1.TextMatrix(Row, 5)

If IsNumeric(s1) Then
a = CDbl(s1)
Else
a = 0
End If

If IsNumeric(s2) Then
c = CDbl(s2)
Else
c = 0
End If

End Sub

Gruß, Rainer

Großes Danke, hab einfach mal meine Strings per MsgBox ausgegeben und habe bemerkt, dass da ein totaler Blödsinn drinnen steht. Der Fehler lag einfach bei mir.
Aber ohne deinen Tipp wäre ich trotzdem nicht draufgekommen.
Gruß Andreas

PS. Die erste Version hatte einen Fehler, den habe ich zu spät
gsehen. :smile:

Welche erste Version?

Hallo Andreas,

Welche erste Version?

die, die ich nach ein paar Sekunden gelöscht habe. :smile: Wenn Du die Beiträge per Mail bekommst, dann bekommst Du beide. Aber nicht zu laut lachen, über den dummen Fehler. Ich hatte das erst anders …

If Trim(s1) „“ Then

… und erst dann ist mir ‚IsNumeric‘ eingefallen :smile: Gepostet habe ich dann ein nicht funktionierendes ‚Gemisch‘. Wenn Du das gar nicht erst gesehen hast, ist es ja gut.

Freut mich, daß es geholfen hat.

Gruß, Rainer