SOLVED

Populating Data into a Table

Copper Contributor

Hi everyone,

 

What I would like to achieve is to populate the following inputs into another worksheet at a click of a button, and once it is populated, the inputs will be removed, waiting for the next set of inputs to be entered. Something similar to a data entry system. Any advise on how this can be done?

JHTan_1-1630571352828.png

 

Would greatly appreciate any advise.

 

5 Replies
This would be pretty easily accomplished with VBA! You could have a macro assigned to a button that on button press, pulls the data from the form, pastes it into another sheet, and then clears it. If you upload your workbook I can work on it, I need some practice :)

Hi @DKoontz,

 

I have attached the excel. I will be giving it a try too.

 

Thank you.

best response confirmed by JHTan (Copper Contributor)
Solution

@JHTan 

Try this out:

 

I just gave the form named ranges, pulled those into the database tab, then cleared the value. The .clear wasn't working with merged cells so I just blanked out the values.

Sub PopulateTable()
    
    Dim caseTracker_wb As Workbook: Set caseTracker_wb = Workbooks("Case Tracker v1.0.xlsm")
    Dim template_ws As Worksheet: Set template_ws = caseTracker_wb.Worksheets("Template")
    Dim database_ws As Worksheet: Set database_ws = caseTracker_wb.Worksheets("Database")
    
    Dim nextRow As Long
    nextRow = database_ws.Range("A" & Rows.Count).End(xlUp).Offset(1).Row
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    ' Copy Form
    With database_ws
        .Cells(nextRow, 1).Value = Range("date_time").Value
        .Cells(nextRow, 2).Value = Range("vendornumber").Value
        .Cells(nextRow, 3).Value = Range("casestatus").Value
        .Cells(nextRow, 4).Value = Range("reportedby").Value
        .Cells(nextRow, 5).Value = Range("escalate").Value
        .Cells(nextRow, 6).Value = Range("severity").Value
        .Cells(nextRow, 7).Value = Range("types").Value
        .Cells(nextRow, 8).Value = Range("changerequest").Value
        .Cells(nextRow, 9).Value = Range("datetimeoccured").Value
        .Cells(nextRow, 10).Value = Range("caseno").Value
        .Cells(nextRow, 11).Value = Range("problemstatement").Value
        .Cells(nextRow, 12).Value = Range("Caseupdate").Value
        .Cells(nextRow, 13).Value = Range("closetime").Value
        .Cells(nextRow, 14).Value = Range("acknowledge").Value
    End With
    
    ' Clear Form
    Range("date_time").Value = ""
    Range("vendornumber").Value = ""
    Range("casestatus").Value = ""
    Range("reportedby").Value = ""
    Range("escalate").Value = ""
    Range("severity").Value = ""
    Range("types").Value = ""
    Range("changerequest").Value = ""
    Range("datetimeoccured").Value = ""
    Range("caseno").Value = ""
    Range("problemstatement").Value = ""
    Range("Caseupdate").Value = ""
    Range("closetime").Value = ""
    Range("acknowledge").Value = ""

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub

 

 

@DKoontz,

 

I have tried it and it looks like it suits my purpose. thank you very much 

Just thinking if you change the .Value = "" to .clearcontents, might work a little better. Instead of replacing it'll remove anything in the ranges.
1 best response

Accepted Solutions
best response confirmed by JHTan (Copper Contributor)
Solution

@JHTan 

Try this out:

 

I just gave the form named ranges, pulled those into the database tab, then cleared the value. The .clear wasn't working with merged cells so I just blanked out the values.

Sub PopulateTable()
    
    Dim caseTracker_wb As Workbook: Set caseTracker_wb = Workbooks("Case Tracker v1.0.xlsm")
    Dim template_ws As Worksheet: Set template_ws = caseTracker_wb.Worksheets("Template")
    Dim database_ws As Worksheet: Set database_ws = caseTracker_wb.Worksheets("Database")
    
    Dim nextRow As Long
    nextRow = database_ws.Range("A" & Rows.Count).End(xlUp).Offset(1).Row
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    ' Copy Form
    With database_ws
        .Cells(nextRow, 1).Value = Range("date_time").Value
        .Cells(nextRow, 2).Value = Range("vendornumber").Value
        .Cells(nextRow, 3).Value = Range("casestatus").Value
        .Cells(nextRow, 4).Value = Range("reportedby").Value
        .Cells(nextRow, 5).Value = Range("escalate").Value
        .Cells(nextRow, 6).Value = Range("severity").Value
        .Cells(nextRow, 7).Value = Range("types").Value
        .Cells(nextRow, 8).Value = Range("changerequest").Value
        .Cells(nextRow, 9).Value = Range("datetimeoccured").Value
        .Cells(nextRow, 10).Value = Range("caseno").Value
        .Cells(nextRow, 11).Value = Range("problemstatement").Value
        .Cells(nextRow, 12).Value = Range("Caseupdate").Value
        .Cells(nextRow, 13).Value = Range("closetime").Value
        .Cells(nextRow, 14).Value = Range("acknowledge").Value
    End With
    
    ' Clear Form
    Range("date_time").Value = ""
    Range("vendornumber").Value = ""
    Range("casestatus").Value = ""
    Range("reportedby").Value = ""
    Range("escalate").Value = ""
    Range("severity").Value = ""
    Range("types").Value = ""
    Range("changerequest").Value = ""
    Range("datetimeoccured").Value = ""
    Range("caseno").Value = ""
    Range("problemstatement").Value = ""
    Range("Caseupdate").Value = ""
    Range("closetime").Value = ""
    Range("acknowledge").Value = ""

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub

 

 

View solution in original post