Forum Discussion
PRASHANT1497
Oct 18, 2019Copper Contributor
ABOUT ADVANCE TABLE FUNCTIUON
I want to create table which do not have fix number of rows. If I input 10 in specific cell it will create 10 rows in table,etc.
Basically I want to create table which has number of rows I input in 1 specific cell.
Can anyone help me to write formula.
**Edited by moderator to remove caps lock **
This seems to work:
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range Dim tbl As ListObject Dim rowNum As Range Set tbl = ActiveSheet.ListObjects("tblDynamic") Set rowNum = Range("B3") Application.ScreenUpdating = False If Not Intersect(Target, Range("B3")) Is Nothing Then With tbl For i = .ListRows.Count To 1 Step -1 .ListRows(i).Delete Next i End With Set rng = Range("tblDynamic[#All]").Resize(tbl.Range.Rows.Count + (rowNum - 1), tbl.Range.Columns.Count) tbl.Resize rng End If Application.ScreenUpdating = True End Sub
6 Replies
- ChrisMendozaIron Contributor
This seems to work:
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range Dim tbl As ListObject Dim rowNum As Range Set tbl = ActiveSheet.ListObjects("tblDynamic") Set rowNum = Range("B3") Application.ScreenUpdating = False If Not Intersect(Target, Range("B3")) Is Nothing Then With tbl For i = .ListRows.Count To 1 Step -1 .ListRows(i).Delete Next i End With Set rng = Range("tblDynamic[#All]").Resize(tbl.Range.Rows.Count + (rowNum - 1), tbl.Range.Columns.Count) tbl.Resize rng End If Application.ScreenUpdating = True End Sub- PRASHANT1497Copper Contributor
- Allen
Community Manager
Your code syntax is incorrect.
You have put
Set tbl - ActiveSheet.ListObjects("tblDynamic")instead of
Set tbl = ActiveSheet.ListObjects("tblDynamic")note one has a - and the other has an =
- PRASHANT1497Copper ContributorThank you but I can't understand I am beginner can you please show formula in given video or share by clicking image or share video including process of writing formula in excel