Option Explicit
Private Sub Workbook_Open()
Dim Mi_Nombre As String, Mi_Version As String, Mi_Fichero
Mi_Nombre = ActiveSheet.Parent.Name
Mi_Fichero = ActiveSheet.Parent.FullName
Mi_Version = Sheets("Hoja1").Range("A1") '<--
' --- Soy yo mismo
If Mi_Nombre = "Libro2.xlsm" Then Exit Sub '<--
' --- No encuentro una actualizacion
If Dir("C:\zzz\Libro2.xlsm") = "" Then Exit Sub '<--
' --- Abro la actualizacion
Workbooks.Open Filename:="C:\zzz\Libro2.xlsm", _ '<--
Origin:=xlWindows
' --- Comparo la Version
If Mi_Version = Workbooks("Libro2.xlsm").Sheets("Hoja1").Range("A1") Then '<--
' --- Si hay LIVUPDATE es que soy nuevo por aqui
If Dir("C:\Tmp\LiveUpdate.bat") = "" Then '<--
MsgBox "Son de la misma Version" '<--
Workbooks(Mi_Nombre).Activate
Workbooks("Libro2.xlsm").Close '<--
Else
MsgBox "Se ha actualizado la Version", vbInformation + vbOKOnly
Kill ("C:\Tmp\LiveUpdate.bat") '<--
Workbooks(Mi_Nombre).Activate
Workbooks("Libro2.xlsm").Close '<--
Workbooks(Mi_Nombre).Activate
End If
Else ' --- Prepado el IiveUpdate para actualizar
Open "C:\Tmp\LiveUpdate.bat" For Output As #1 '<--
Print #1, "@echo off"
Print #1, "TimeOut /T 5 /NoBreak >nul"
Print #1, "copy C:\zzz\Libro2.xlsm " & Mi_Fichero & " >nul" '<--
Print #1, "START Excel " & Mi_Fichero
Print #1, "Exit"
Close #1
Workbooks("Libro2.xlsm").Close '<--
Shell "CMD /C Start /MIN C:\Tmp\LiveUpdate.bat" '<--
Application.Quit
End If
End Sub
Open "C:\Users\Downloads\Nueva\LiveUpdate.bat" For Output As #1
Print #1, "@echo off"
Print #1, "TimeOut /T 5 /NoBreak >nul"
Print #1, "copy C:\Users\Downloads\Nueva\Libro2.xlsm " & ActiveSheet.Parent.FullName & " >nul"
Print #1, "START Excel " & ActiveSheet.Parent.FullName
Print #1, "Exit"
Close #1
Option Explicit
Private Sub Workbook_Open()
Dim Origen as String, Mi_Fichero as String, Mi_Nombre As String, _
Destin as String, Mi_Version As String
...
' ---&--- Chr$(34) es el carácter Comillas "
Origen = Chr$(34) & "C:\Users\Downloads\Nueva\Libro2.xlsm" & Chr$(34)
Destin = Chr$(34) & Mi_Fichero & Chr$(34)
Open "C:\Users\Downloads\Nueva\LiveUpdate.bat" For Output As #1
Print #1, "@echo off"
Print #1, "TimeOut /T 5 /NoBreak >nul"
Print #1, "copy " & Origen & " " & Destin & " >nul"
Print #1, "START Excel " & Destin
Print #1, "Exit"
Close #1
...
Application.Quit
End If
End Sub
Option Explicit
Private Sub Prueba()
Dim Origen as String, Mi_Fichero as String, Mi_Nombre As String, _
Destin as String, Mi_Version As String
Mi_Nombre = ActiveSheet.Parent.Name
Mi_Fichero = ActiveSheet.Parent.FullName
Mi_Version = Sheets("Hoja1").Range("A1") '<--
Origen = Chr$(34) & "C:\Users\Downloads\Nueva\Libro2.xlsm" & Chr$(34)
Destin = Chr$(34) & Mi_Fichero & Chr$(34)
MsgBox "copy " & Origen & " " & Destin & " >nul"
End Sub
COPY "C:\Users\Downloads\Nueva\Libro2.xlsm" "C:\Users\Downloads\Nueva Carpeta(1)\libro1.xlsm" >nul