NewFile As String is used to show the location of the new version of the file that we want to update
PathToCopy As String is used to location where we want to put it in our main program
Process As Long is used to open the process of our main program
StartingPrgrm As String is used to show the location of the exe of our main program so we can start it again

so we use "Microsoft Scripting Runtime" to copy the the the new location then we start our main program and end the updater

so here is the code

Private Sub Form_Load()
On Error GoTo err_hndl
Me.Visible = False
Dim NewFile As String
Dim PathToCopy As String
Dim StartingPrgrm As String
Dim Process As Long
NewFile = "The path and the name of the file you want to copy example "C:\test.txt""
PathToCopy = "The path where you want to copy the file example : "C:\MyProgram\""
With New FileSystemObject
.CopyFile NewFile, PathToCopy
End With
StartingPrgrm = "The path of your main program example "C:\MyProgra\""
StartingPrgrm = StartingPrgrm & "MyExe.exe"
Process = Shell(StartingPrgrm, vbNormalFocus)
End
Exit Sub
err_hndl:
MsgBox Err.Description, vbCritical
End
End Sub

WARNING: This Updater will not work on updating exe of your main program. Make a Delay in updater to wait your main program is closed!!!!!!