Hallo zusammen,
ich weiß, das Thema wurde hier bestimmt schon hunterte Male durchgekaut, aber ich weiß einfach nicht mehr weiter.
Die durchwegs vielversprechenden und einleuchtenden Lösungen, die hier und in anderen Foren angeboten werden hatten nicht den gewünschten Effekt.
Mit Val() und CDbl() komme ich nicht weiter...
Die Problemstellung: ich habe in der Spalte R zweistufige Rabatte, in der Form
Jetzt hätte ich gerne jeden der Rabatte als Double-Variable mit der ich weiterrechnen kann. Das funktioniert auch wenn ich die Variablen einzeln ins Tabellenblatt schreibe, habe ich jeweils eine Zahl mit der ich weiterrechnen könnte.
Wenn ich aber im Script versuche die beiden beispielsweise zu addieren, giebts den Laufzeitfehler Typenunverträglichkeit.
Help would be highly appreciated!
Sub RabatteAlsZahl()
Dim LRow As Long
Dim i As Integer
Dim Start1 As Integer
Dim Start2 As Integer
Dim Anz As Integer
Dim rngZelle As Range
Dim Rabatt1 As String
Dim Rabatt2 As String
LRow = Cells(Rows.Count, 1).End(xlUp).Row
'Rabatt
For Each rngZelle In Range("R2:R" & LRow)
Anz = Len(rngZelle) - Len(Replace(rngZelle, "/", ""))
Rabatt1 = ""
Rabatt2 = ""
For i = 1 To Anz
Start1 = WorksheetFunction.Find("#", WorksheetFunction.Substitute(rngZelle, "-", "#", i))
Rabatt1 = Rabatt1 & Mid(rngZelle, Start1, 3)
Start2 = WorksheetFunction.Find("#", WorksheetFunction.Substitute(rngZelle, "/", "#", i))
Rabatt2 = Rabatt2 & Mid(rngZelle, Start2 + 2, 6)
Rabatt2 = Replace(Rabatt2, ",", ".")
Rabatt2 = Rabatt2
Next i
rngZelle.Offset(0, 1) = Rabatt1 + Rabatt2
Next rngZelle
End Sub
|