Forzar a que nuestra app en excel solo abra con una version determinada

Se puede hacer de alguna forma que al iniciar la app, chequee con que version se esta abriendo y si no es la version con la que se programo que de un aviso que solo puede abririse con tal version y que posteriormente se cierre?

Respuesta
2

.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)

.

Gracias Fernando, la pruebo.

Abrazos.

Martin

(Buenos Aires - Argentina)

.

Ok, Martín

Espero que te haya funcionado

Abrazo

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas