I have this code that I got from "How To Excel" YouTube and was wondering how, if possible, to make it auto run only when a new sheet is added, sheet name is changed, or sheet is moved. Is there a way? Thank you!

Sub ListAllSheets()

Dim ws As Worksheet
Dim Counter As Integer

Counter = 0

For Each ws In ActiveWorkbook.Worksheets
    ActiveCell.Offset(Counter, 0).Value = ws.Name
    Counter = Counter + 1
Next ws

End Sub