ich habe folgenden Code zusammengezimmert, um in Spalte B nach Zahlen (EURO-Beträgen) zu suchen. Wenn diese gefunden werden, werden weitere Schritte ausgelöst. Ich gebe den Suchbetrag mit Komma in Userform1 ein.
Ich kann damit alle Zahlen zuverlässig finden, sofern es keine 1000er Beträge sind. 137,56 geht. 2.052,66 wird aber nicht gefunden. Dabei ist es egal, ob ich in Userform1 2052,66 oder 2,052.66 etc. eingebe....
Was entgeht mir hier? Dank im Voraus.
Sub find()
Dim suchbetrag As Double
Dim cl As Range
suchbetrag = UserForm1.TextBox1.Value
'MsgBox suchbetrag
With ActiveSheet.Range("B:B")
'With Selection.CurrentRegion.Select
Set cl = .find(suchbetrag, After:=.Range("A1"), LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
'Application.Speech.Speak CLng(UserForm1.TextBox1.Value), True, , True
If Not cl Is Nothing Then
cl.Select
Application.Speech.Speak ActiveCell, True, , True
Select Case MsgBox("Richtiger Fund?", vbYesNo, "Suchergebnis")
Case vbYes
If UserForm1.OptionButton1.Value = True Then
cl.Offset(0, 5).Select
ActiveCell.Value = CCur(UserForm1.TextBox2.Value)
ActiveCell.NumberFormat = "#,##0.00 "
ActiveCell.Offset(0, 2).Value = CCur(ActiveCell.Value - ActiveCell.Offset(0, 1).Value)
ActiveCell.Offset(0, 2).Select
Application.Speech.Speak "Differenz in Höhe von " & ActiveCell.Value, True, , True
ElseIf UserForm1.OptionButton2.Value = True Then
cl.Offset(0, 8).Select
ActiveCell.Value = CCur(UserForm1.TextBox2.Value)
ActiveCell.NumberFormat = "#,##0.00 "
ActiveCell.Offset(0, 2).Value = CCur(ActiveCell.Value - ActiveCell.Offset(0, 1).Value)
ActiveCell.Offset(0, 2).Select
Application.Speech.Speak "Differenz in Höhe von " & ActiveCell.Value, True, , True
End If
'cl.Select
Case vbNo
Exit Sub
End Select
Else
Application.Speech.Speak suchbetrag & "wurden nicht gefunden.", True, , True
MsgBox "kein Treffer", vbInformation, "Suchergebnis"
End If
End With
UserForm1.Show
End Sub