interesting... i'd have expected to be able to use subtotal to help you out, but apparently subtotal does not like embedded formulas... how do you feel about changing X's to 1's? can make it look like an X with formatting if that's important to you... not sure what O's represent, but i guess those would have to be 1's as well for the solution i have in mind.
another thought is to use the same macros you're calling when a shop is selected to calculate those %'s... something like:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(True, True) = "$A$2" Then
'simarui additional code
Dim LastCol As Long, x As Long, ItemCount As Long, VisibleCols As Long, LastRow As Long, rng As Range
ItemCount = 0
VisibleCols = 0
LastCol = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Column
LastRow = Range("A" & Rows.Count).End(3).Row
'end of simarui code
Select Case Range("A2")
'Target
Case "All"
Call ALL
Case "Shop1"
Call Shop1
Case "Shop2"
Call Shop2
Case "Shop3"
Call Shop3
Case "Shop4"
Call Shop4
Case "Shop5"
Call Shop5
Case "Shop6"
Call Shop6
Case Else
'Do nothing
End Select
'simarui additional code
For Each rng In Range("A12:A" & LastRow)
ItemCount = 0
VisibleCols = 0
For x = 4 To LastCol
If Columns(x).Hidden = False Then
VisibleCols = VisibleCols + 1
If UCase(Cells(rng.Row, x)) = "X" Or UCase(Cells(rng.Row, x) = "O") Then _
ItemCount = ItemCount + 1
End If
Next
Range("B" & rng.Row) = ItemCount / VisibleCols
Next rng
'end of simarui code
End If
End Sub
Bookmarks