Search code examples
excelvbasumrangecell

Sum various Range.Values into Int


I am starting to look VBA and Excel. I have a problem: I can't do a simple sum to an integer of some cell values. I already tried some code but every time I put the Sum the result is "False". I can't update the value of Counter too. Can someone help me? Thanks!

Sub Discount()
   Dim i As Long
   Dim var1 As Integer
   ParzImp = 0
   ParzIT17 = 0
   For i = 2 To 31164
       If Cells(i, 1).Value = Cells(i + 1, 1).Value And Not IsEmpty(Cells(i + 
          1, 1).Value) And Counter = 0 Then
          ParzImp = ParzImp + Range("C" & i).Value + Range("C" 
          & i + 1).Value And ParzIT17 = ParzIT17 + Range("D" & 
          i).Value + Range("D" & i + 1).Value And Counter = Counter + 1
            Debug.Print Counter
            Debug.Print Range("C" & i).Value
            Debug.Print Range("C" & i + 1).Value
            Debug.Print Range("D" & i).Value
            Debug.Print Range("D" & i + 1).Value
            Debug.Print Cells(i, 3).Value + Cells(i + 1, 3).Value
            Debug.Print var1 = Cells(i, 3).Value + Cells(i + 1, 3).Value
            Debug.Print Range("D" & i + 1).Value + Range("D" & i).Value
            Debug.Print ParzImp
            Debug.Print ParzIT17

Debugger print: 0 (Counter needed to be 1, not 0) 83.8 (Correct value for C2) 83.8 (Correct value for C3) 186.23 (Correct value for D2) 186.23 (Correct value for D3) 167.6 (Correct value for C2+C3) False (Why a boolean????) 372.46 (Correct value for D2+D3) 0 (Not the correct sum) 0 (Not the correct sum)

Thank you all!


Solution

  • You can't use And to join up multiple instructions like that - they should be separate lines:

    ParzImp = ParzImp + Range("C" & i).Value + Range("C" 
              & i + 1).Value
     ParzIT17 = ParzIT17 + Range("D" & 
              i).Value + Range("D" & i + 1).Value
    Counter = Counter + 1
    

    rather than:

    ParzImp = ParzImp + Range("C" & i).Value + Range("C" 
              & i + 1).Value And ParzIT17 = ParzIT17 + Range("D" & 
              i).Value + Range("D" & i + 1).Value And Counter = Counter + 1