Hallo,
hier noch ein Beispiel.
Angenommen ich habe eine Zeile aus einer Textdatei. ("9;50;20;19;2;80")
Der erste Wert sagt aus ab wie viel Stück ich Provision erhalte,
die nachfolgenden sind die verkauften Stück.
Nun rechne ich es mit dem Taschenrechner
50, 20, 19 und 80 >= 9 also müsste ich 4*25 Euro Provision erhalten.
Nun baue ich mir ein VBA Programm weil ich das gern automatisieren will.
Das VBA Programm sagt mir aber jetzt ich bekomme nix?!
Sub Makro1()
Dim varVariant, A As Long, nCount As Long
Const Provision As Currency = 25
varVariant = Split("9;50;20;19;2;80", ";")
For A = Lbound(varVariant) + 1 To Ubound(varVariant)
If varVariant(A) >= varVariant(0) Then
nCount = nCount + 1
End If
Next A
MsgBox "Sie erhalten " & Format(Provision * nCount, "0.00 ") & " Provision"
End Sub
Daher muss ich erst den Wert in eine Zahl umwandeln damit ich rechnen kann.
In diesem Fall ist es ja schnell gemacht,
den Text mit 1 Multipliziert wandelt das Ergebnis in den Type Double um
oder ich verwende die Umwandlungsfunktionen clng(),csng(),cdbl().
(Achtung bei Text und Dezimalzahlen spielt in VBA der vom System verwendete
Dezimal- Separator eine Rolle, auf deutschen Systemen ist es in der Regel Komma
auf viele anderen der Punkt)
Sub Makro1()
Dim varVariant, A As Long, nCount As Long
Const Provision As Currency = 25
varVariant = Split("9;50;20;19;2;80", ";")
For A = Lbound(varVariant) + 1 To Ubound(varVariant)
If CDbl(varVariant(A)) >= varVariant(0) * 1 Then
nCount = nCount + 1
End If
Next A
MsgBox "Sie erhalten " & Format(Provision * nCount, "0.00 ") & " Provision"
End Sub
Gruß Tino