montecarlo2012

Well-known Member
Joined
Jan 26, 2011
Messages
984
Office Version
  1. 2010
Platform
  1. Windows
Hello.
I have a little snipe code able to tell me how many times number 1 is in the column A, I am trying to count how many time 2 is after one, but still I don't know how to say that in VBA. This is the little code:
Code:
     Sub countmontecarlo()Dim cell As Range
Dim n As Long
      For Each cell In Range("A:A")
            If cell = 1 Then
          
            n = n + 1
            End If
      Next cell
Range("b6").Value = n
End Sub
the code count 6 one's but how to count 5 times 2 under the coordinate 1-2, thank you.
1 123
2 1
3 25
1 3
2
36
1
2
3
1
2
1
2
1
3
 
Last edited by a moderator:

Excel Facts

What did Pito Salas invent?
Pito Salas, working for Lotus, popularized what would become to be pivot tables. It was released as Lotus Improv in 1989.
Code:
Sub countmontecarlo()
Dim cell As Range
Dim lastrow As Long
Dim n As Long
Dim i As Long
    With ActiveSheet
    
        lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
        
        For i = 1 To lastrow
    
            If .Cells(i, "A").Value = 1 And .Cells(i + 1, "A").Value = 2 Then
                
                n = n + 1
            End If
        Next i
        .Range("B6").Value = n
    End With
End Sub
 
Upvote 0
How about:

Code:
Sub counting1_2()
    Dim r As Range
    Set r = Range("A1", Range("A" & Rows.Count).End(xlUp))
    Range("[COLOR=#ff0000]B5[/COLOR]").Value = WorksheetFunction.CountIf(r, 1)
    Range("[COLOR=#ff0000]B6[/COLOR]").Value = Evaluate("=SUMPRODUCT((" & r.Address & "=1)*(" & r.Offset(1).Address & "=2))")
End Sub
 
Upvote 0
How about:

Code:
    Range("[COLOR=#ff0000]B6[/COLOR]").Value = Evaluate("=SUMPRODUCT((" & r.Address & "=1)*(" & r.Offset(1).Address & "=2))")
Since the Evaluate function processes non-text functions as arrays (when an array of values are involved) natively, you can use the SUM function instead of the SUMPRODUCT function for the expression you are giving it. Also, you do not need to include the equal sign for the Evaluate function.
Code:
Range("B6").Value = Evaluate("SUM((" & r.Address & "=1)*(" & r.Offset(1).Address & "=2))")
 
Upvote 0
Mr. Rick Rothstein My personal admiration for you Sir, Thank you, So much for your input.
 
Upvote 0
As you can see, at the beginning the post has a little Matrix, what I was trying to request is to count the value of following position for each number. I don't know if make sence,
like how many times 3 is after 2, and so on, but I really apreciate the answers, I am working now trying to find the way, for me is really dificult, but....
 
Upvote 0

Forum statistics

Threads
1,213,530
Messages
6,114,163
Members
448,554
Latest member
Gleisner2

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top