Hi Toci,
With this code:
Sub TociFilteredII(): Dim wd As Worksheet, r As Long, p As Single, t As Single
Dim Amt As Single, Col As String, C1, C2, C3, C4, C5, C6, X, n As Long
Set wd = Sheets("Data")
With wd.UsedRange
Amt = .Range("H1")
Col = InputBox("In what columns? If more than one Type K|L|M etc")
X = Split(Col, "|")
GoTo Filtered
C1 = Array("EU")
C2 = Array("EU213", "EU116")
C3 = Array("B", "A")
C4 = Array("Financial")
C5 = Array("BILL")
C6 = Array("Bill0", "Bill10", "Bill1")
.AutoFilter
.AutoFilter Field:=1, Criteria1:=C1, Operator:=xlFilterValues
.AutoFilter Field:=2, Criteria1:=C2, Operator:=xlFilterValues
.AutoFilter Field:=3, Criteria1:=C3, Operator:=xlFilterValues
.AutoFilter Field:=4, Criteria1:=C4, Operator:=xlFilterValues
.AutoFilter Field:=5, Criteria1:=C5, Operator:=xlFilterValues
.AutoFilter Field:=6, Criteria1:=C6, Operator:=xlFilterValues
Filtered:
t = WorksheetFunction.Subtotal(9, Range("G:G"))
For r = 2 To wd.UsedRange.Rows.Count
If Not Rows(r).Hidden Then
If IsNumeric(.Cells(r, 7)) Then
p = .Cells(r, 7) / t
.Cells(r, X(0)) = .Cells(r, X(0)) + p * Amt
If InStr(1, Col, "|") Then
For n = 1 To UBound(X)
.Cells(r, X(n)).Value = .Cells(r, X(n)).Value + p * Amt
Next n
End If
End If: End If: Next r
End With
End Sub
I get:Toci.PNG
Bookmarks