Hi Event2020
I have a different approach to find a solution to your query
Using the worksheet change events you could achieve your goals without the need of inserting and clicking a button to run the macro.
The following codes will run each time Sheet1 is activated (selected) or deactivated
Please,
1- Right-click on the Sheet1 tab
2- Select View Code
3-and paste the following codes on the sheet events VBA panel


Here is the code
*****************************************************************************************************
Private Sub Worksheet_Activate()
Dim DataRange As Range
Dim OutputSh As Worksheet
Dim datacell As Range
Set DataRange = Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
Set OutputSh = Sheets("Sheet2")
For Each datacell In DataRange
OutputSh.Cells(datacell.Row + 1, datacell.Column).FormulaR1C1 = "=IF(Sheet1!R[-1]C<>"""",""Has Data"",""No Data"")"
Next datacell
End Sub
Private Sub Worksheet_Deactivate()
Dim DataRange As Range
Dim OutputSh As Worksheet
Dim datacell As Range
Set DataRange = Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
Set OutputSh = Sheets("Sheet2")
For Each datacell In DataRange
OutputSh.Cells(datacell.Row + 1, datacell.Column).FormulaR1C1 = "=IF(Sheet1!R[-1]C<>"""",""Has Data"",""No Data"")"
Next datacell
End Sub
*********************************************************************************************
RESULTS
On Sheet2, Column B shows the formulas in column A

Notes:
You could try a similar code with the Worksheet_Change(ByVal Target As Range) event
every time you change the value in column A on Sheet1. ( You must add to the code a few more lines to specify the target range)
In the case, you would prefer to replace the formula with just the word "Has Data" or "No Data" then
*********************************************************************************************************
Private Sub Worksheet_Activate()
Dim DataRange As Range
Dim OutputSh As Worksheet
Dim datacell As Range
Set DataRange = Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
Set OutputSh = Sheets("Sheet2")
For Each datacell In DataRange
If Not IsEmpty(datacell) Then
OutputSh.Cells(datacell.Row + 1, datacell.Column).Value2 = "Has Data"
Else
OutputSh.Cells(datacell.Row + 1, datacell.Column).Value2 = "No Data"
End If
Next datacell
End Sub
Private Sub Worksheet_Deactivate()
Dim DataRange As Range
Dim OutputSh As Worksheet
Dim datacell As Range
Set DataRange = Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
Set OutputSh = Sheets("Sheet2")
For Each datacell In DataRange
If Not IsEmpty(datacell) Then
OutputSh.Cells(datacell.Row + 1, datacell.Column).Value2 = "Has Data"
Else
OutputSh.Cells(datacell.Row + 1, datacell.Column).Value2 = "No Data"
End If
Next datacell
End Sub
*********************************************************************************************
Do let me know if you need more help
On the other hand,
If the answer helped you.
Please, consider marking this thread as answered.
It would help others in the community with similar questions or problems.
Thank you in advance
Regards
Jeovany