.10.04.17
Buenas,
Aquí te paso una rutina que controla la versión que se esté utilizando y, en caso de no coincidir, cierra el archivo. Prevé que la versión sea exacta o podés permitirle el uso de versiones posteriores. Adicionalmente, impide que se interrumpa la rutina con Ctrl + Pausa.
Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y hacé doble click en la hoja que dice "ThisWorkbook" (o "EsteLibro" según la versión").
Copiá el código siguiente y pegalo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Workbook_Open()
Application.EnableCancelKey = xlDisabled
'---- Variables modificables ----
'=== camarada, modifica estos datos de acuerdo a tu proyecto:
VersionOK = 15
Exacta = False ' Si ponés TRUE sólo se abrirá con esa versión. En False abre con la version indicada o posteriores
'---- fin Variables
'
' VBA coding by FeJoAl
'
'---- inicio de rutina:
'
Sale = False
VersionAct = Val(Application.Version)
If VersionAct = VersionOK Then
ElseIf Exacta Then
Sale = True
If VersionAct < VersionOK Then Sale = True
End If
'
If Sale Then
ElMensaje = "La versión de MS Excel de su equipo (" & Application.Version & ") no es compatible con esta aplicación." & Chr(10) & "El programa se cerrará ahora"
ElTitulo = "VERSION INCOMPATIBLE"
TipoMens = vbCritical
MsgBox ElMensaje, TipoMens, ElTitulo
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True
Else
'AQUI VAN LOS COMANDOS A SEGUIR EN CASO DE QUE LA VERSION SEA COMPATIBLE
'COMO MOSTRAR HOJAS OCULTAS, ETC
'
End If
Application.EnableCancelKey = xlInterrupt
End Sub
Desde luego, como hay formas de burlar este control, sugiero que tu aplicación tenga todas las hojas ocultas con atributo VeryHidden y que la rutina que te pasé se encargue de mostrar las hojas si la versión es la correcta.
Comentame si mi solución resuelve lo que necesitabas -y, en tal caso, agradeceré que califiques mi contribución- o escribime de nuevo aquí, si precisás más apoyo con esto.
Un abrazo
Fernando
(Buenos Aires, Argentina)
.