Problem mit Val und Kommazahlen...
15.12.2003 07:30:21
Alexej
Ich habe hier ein Stueckchen Code, der eine Berechnung durchfuehrt. Dabei ist es jedoch unangenehm aufgefallen, dass Excel nur Kommazahlen bearbeitet, die mit einem Punkt getrennt wurden (z.B. 123.44). Wenn die Zahl mit Komma getrennt wurde (z.B. 123,44), dann betrachtet er die Zahl als ganzes. Wie muss ich diesen Code aendern, sodass er sowohl mit Punkt, als auch mit Komma, als Trennzeichen arbeitet?
Viele Gruesse aus bitterkalten Moskau,
Alexej
PS: Meiner Meinung nach, liegt es an der "Val" Bezeichnung...
Sub CalcFootnote()
Dim sWsh As Worksheet
Dim i As Integer
Dim lSumL As Long
Dim rCell As Range
sumoffset = 57
ThisWorkbook.Worksheets("Èòîã").Range("$F$176").Value = 0 ' Z
lSumL = 0
For i = 1 To Range("Znumberofcontracts").Value
lSumL = lSumL + ThisWorkbook.Worksheets("Äîã. " + CStr(i) + " ëèñò 1").Range("AR249").Value
If Not IsError(ThisWorkbook.Worksheets("Äîã. " + CStr(i) + " ëèñò 1").Range("AN80").Value) Then
ThisWorkbook.Worksheets("Èòîã").Range("$F$176").Value = _
ThisWorkbook.Worksheets("Èòîã").Range("$F$176").Value + _
ThisWorkbook.Worksheets("Äîã. " + CStr(i) + " ëèñò 1").Range("AR249").Value * _
ThisWorkbook.Worksheets("Äîã. " + CStr(i) + " ëèñò 1").Range("AN80").Value
End If
Next
If lSumL <> 0 Then
ThisWorkbook.Worksheets("Èòîã").Range("$F$176").Value = _
ThisWorkbook.Worksheets("Èòîã").Range("$F$176").Value / lSumL
Else
ThisWorkbook.Worksheets("Èòîã").Range("$F$176").Value = 0
End If
For Each rCell In ThisWorkbook.Worksheets("Èòîã").Range("$D$168:$F$175") ' a-s, ñóììàðíûé
If rCell.Interior.ColorIndex = 37 Then
rCell.Value = 0
For i = 1 To Range("Znumberofcontracts").Value
If Not IsError(ThisWorkbook.Worksheets("Äîã. " + CStr(i) + " èòîã").Cells(rCell.Row + sumoffset, rCell.Column).Value) Then
rCell.Value = rCell.Value + Val(ThisWorkbook.Worksheets("Äîã. " + CStr(i) + " èòîã").Cells(rCell.Row + sumoffset, rCell.Column).Value)
End If
Next i
End If
Next
For Each rCell In ThisWorkbook.Worksheets("Èòîã").Range("$F$180:$L$185") ' a-s, ñóììàðíûé
rCell.Value = 0
For i = 1 To Range("Znumberofcontracts").Value
rCell.Value = rCell.Value + ThisWorkbook.Worksheets("Äîã. " + CStr(i) + " èòîã").Cells(rCell.Row + sumoffset - 1, rCell.Column).Value
Next i
Next
End Sub