1

I am trying to count dynamic in a table using the header (see the picture below). The problem is that i dont know how to make Tabelle14[[#Headers],[Cinema]] dynamic. I tried it with R[-1]C[0] but this is not the solution.

Is where any way to do it without a loop or do you have a better idea how to solve it?

enter image description here

At the moment i am doing this with .FormulaR1C1

Here is my Code

Sub countit()

Dim i As Integer: i = 2
Dim n_col As Integer

Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("Tabelle14")

n_col = tbl.HeaderRowRange.Columns.Count - 1

Do While i < n_col

ActiveSheet.ListObjects("Tabelle14").ListColumns(i - 1).DataBodyRange(1, i).Select
ActiveCell.FormulaR1C1 = "=COUNTIFS(Tabelle13[Date],[@Date],Tabelle13[Name],Tabelle14[[#Headers],[Cinema]])"

i = i + 1
Loop

1 Answer 1

1

Populate CountIfs Table

  • Adjust the values in the constants section.
Option Explicit

Sub PopulateCountIfsTable()
    
    ' Source
    Const sName As String = "Sheet1"
    Const stName As String = "Tabelle13"
    
    ' Destination
    Const dName As String = "Sheet1"
    Const dtName As String = "Tabelle14"
    Const dfCol As Long = 2
    
    Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
    
    Dim sws As Worksheet: Set sws = wb.Worksheets(sName)
    Dim stbl As ListObject: Set stbl = sws.ListObjects(stName)
    
    Dim dws As Worksheet: Set dws = wb.Worksheets(dName)
    Dim dtbl As ListObject: Set dtbl = dws.ListObjects(dtName)
    Dim dlCol As Long: dlCol = dtbl.Range.Columns.Count
    
    Dim c As Long
    Dim cFormula As String
    
    For c = dfCol To dlCol
        
        cFormula = "=COUNTIFS(" & stName & "[" & stbl.HeaderRowRange(1).Value _
            & "],[@" & dtbl.HeaderRowRange(1).Value & "]," & stName & "[" _
            & stbl.HeaderRowRange(2).Value & "]," & dtName & "[[#Headers],[" _
            & dtbl.HeaderRowRange(c).Value & "]])"
        
        dtbl.ListColumns(c).DataBodyRange.Formula = cFormula
    
    Next c

End Sub
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.