Apertura en ‘MODO LECTURA’ de sólo una hoja del libro xlsm: SOLUCIONADO

El manejo de libros xlsm puede llegar a ser una tarea compleja, sobre todo cuando se quiere realizar acciones especificas como abrir únicamente una hoja en modo lectura. Sin embargo, Visual Basic ofrece una serie de herramientas que nos permiten ejecutar esta tarea de una manera más sencilla y eficaz.

Uno de los desafíos más recurrentes en la gestión de archivos xlsm es el control de apertura de hojas. Hay situaciones en las que se requiere abrir únicamente una hoja en modo lectura, evitando así cambios indeseados o errores que puedan afectar la integridad de la información almacenada.

Utilización de Visual Basic para la apertura en ‘MODO LECTURA’

El primer paso para abrir una sola hoja del libro xlsm en modo lectura con Visual Basic es establecer la referencia al objeto Workbook, que contiene todas las hojas de cálculo. Este objeto será el que vamos a utilizar para interactuar con Excel.

    Dim xlApp As New Excel.Application
    Dim xlWorkBook As Excel.Workbook
    xlWorkBook = xlApp.Workbooks.Open ("nombre_del_archivo.xlsm")
    

Una vez establecida la referencia al objeto Workbook, el siguiente paso es definir la hoja que se desea abrir en modo lectura. Para ello, vamos a utilizar la propiedad Worksheets del objeto Workbook.

    Dim xlWorkSheet As Excel.Worksheet
    xlWorkSheet = xlWorkBook.Worksheets("nombre_de_la_hoja")
    

Para que la hoja se abra en modo solo lectura, necesitamos cambiar las propiedades de la hoja. El objeto Worksheet posee una propiedad llamada Protect que nos permite proteger la hoja contra modificaciones no deseadas, es decir, abrir la hoja en modo lectura.

    xlWorkSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    

Finalmente, para asegurar la apertura solo de la hoja seleccionada y no del resto del libro, necesitamos cerrar todos los demás libros abiertos.

    For Each wb In xlApp.Workbooks
      If wb.Name <> xlWorkBook.Name Then
        wb.Close SaveChanges:=False
      End If
    Next wb
    

Consideraciones adicionales

El código anterior permite abrir una hoja específica en modo lectura, asegurándonos que ninguna otra hoja del libro se abra. Sin embargo, es importante tomar en cuenta que el modo lectura no bloquea completamente la hoja. Los usuarios todavía pueden realizar algunas acciones, como filtrar datos o copiar información.

Si se quiere restringir aún más las acciones permitidas en la hoja, se deben cambiar las opciones de la función Protect. Por ejemplo, para desactivar el filtro de datos, se puede utilizar el siguiente código:

    xlWorkSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=False
    

El manejo de libros xlsm con Visual Basic nos facilita muchísimo el trabajo al permitirnos automatizar tareas que de otro modo requerirían de un gran esfuerzo y tiempo. La apertura de una hoja en modo lectura es solo uno de los muchos ejemplos de lo que se puede lograr con este potente lenguaje de programación.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad