Selected Answer
Ghost
Your With statement below works if the named shape is that of a group (not an item within that group). I created some shapes and named the textbox shape like "bPic1" then grouped them into 3 groups. I modified your code section as follows:
On Error Resume Next
With Sheet1.Shapes("Group " & Numb)
If .GroupItems("bPic" & Numb).TextFrame2.TextRange.Text = "þ" Then 'Has been checked/marked like a checkbox
iCheckCount = iCheckCount + 1
End If
End With
and it correctly counted 1 (since only one of the three groups had þ as text).
If however I had a group item shape name in the With statement (e.g. "Rectangle"&Numb) then 3 were counted i.e. all shapes (like you found).
Further to the file attached to your question, please see the revised code below, key changes in bold and commented to show an approach of looping through shapes*:
Sub countselected()
Dim Numb As Long
Dim iCheckCount, lastrow, cardid As Long
Dim FoundMemb As Range
Dim Shp As Shape
iCheckCount = 0
lastrow = Tasks.Range("A99999").End(xlUp).Row
If lastrow < 3 Then Exit Sub
For Numb = 3 To lastrow ' For 3 to last row in Tasks...
On Error Resume Next
For Each Shp In Sheet1.Shapes ' loop through shapes to see if there's a name match
If Shp.Name = "Card" & Numb Then 'if so..
With Shapes("Card" & Numb) 'check ...
If .GroupItems("bPic" & Numb).TextFrame2.TextRange.Text = "þ" Then '..it has been checked/marked like a checkbox
iCheckCount = iCheckCount + 1 ' if so, increase the count
End If
End With
End If
Next Shp
Next Numb
MsgBox iCheckCount ' report ticks
End Sub
* I wasn't sure if your real code will check against numbered tasks in your worksheet Tasks (it doesn't now).
Hope this helps.