lunes, 17 de octubre de 2011

Código VBA (acciones con una hoja de Excel)





Presentamos una selección de ejemplos de código en VBA listo para ejecutar mediante cualquier macro o por medio de un evento de algún objeto (Excel, un libro, una hoja o un rango).

En este artículo, ofrecemos líneas de código ejecutable para realizar acciones con una hoja de Excel. Concretamente veremos formas de OCULTAR, MOSTRAR, PROTEGER, DESPROTEGER, SELECCIONAR, IMPRIMIR y OTRAS ACCIONES con VBA.



El texto en verde que a veces se puede ver entre el código, es el que debe personalizar el usuario, si procede.


OCULTAR / MOSTRAR HOJAS DE EXCEL CON VBA

1) Ocultar una hoja de Excel (para mostrarla, hay que cambiar "False" por "True".

Sub OcultarHoja1()
   Sheets("Hoja1").Visible=False
End Sub

2) Ocultar totalmente una hoja de Excel (no se podrá mostrar con el menú contextual que emerge de las pestañas de hojas).



Sub OcultarHoja1Totalmente()
   Sheets("Hoja1").Visible=xlVeryHidden
End Sub

PROTECCIÓN DE HOJAS DE EXCEL CON VBA

3) Proteger la hoja activa de Excel (no se podrán seleccionar las celdas bloqueadas).



Sub ProtegerHoja()
   ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
   ActiveSheet.EnableSelection = xlUnlockedCells

End Sub


4) Desproteger una hoja de Excel.


Sub DesprotegerHoja()
   ActiveSheet.Unprotect
End Sub

VARIAS ACCIONES CON HOJAS DE EXCEL CON VBA

5) Seleccionar una hoja de Excel (el nombre debe ser el que aparece en la pestaña de la hoja).

Sub SeleccionarHoja1()
   Sheets("Hoja1").Select
End Sub


6) Cambiar el zoom de una hoja de Excel.


Sub Zoom120()
   ActiveWindow.Zoom = 120
End Sub


7) Imprimir las hojas seleccionadas con la impresora y configuraciones por defecto.

Sub ImprimirHojaActiva()
   ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End Sub

8) Ocultar la cuadrícula de la hoja activa (para mostrarlos, cambiar "False" por "True").

Sub OcultarCuadricula()
   ActiveWindow.DisplayGridlines = False
End Sub

9) Ocultar los títulos de encabezamiento de filas y columnas (para mostrarlos, cambiar "False" por "True").

Sub OcultarTitulos()
   ActiveWindow.DisplayHeadings = False
End Sub

  José Manuel Pomares Medrano


4 comentarios:

  1. Asi se hacen las cosas, sencillas, directas y claras muy buen trabajo y muchas gracias

    ResponderEliminar
  2. Es posible crear una macro que al cerrar x libro de excel, abra inmediatamente otro?

    ResponderEliminar
  3. Estimados Contactos.
    Adjunto algunas instrucciones que puede fortalecer la codificación de sus programas:

    APLICAR EN "MÒDULO":
    INACTIVAR BARRA DE HERRAMIENTA, BARRA DE ESTADO, BARRA DE FÒRMULAS, BARRA DE DESPLAZAMIENTO (Scroll Bar), ENCABEZADOS (Filas-Columnas), COLOCAR PANTALLA COMPLETA

    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
    Application.DisplayFullScreen = True
    Application.ScreenUpdating = False
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = False
    ActiveWindow.DisplayWorkbookTabs = False
    ActiveWindow.DisplayHeadings = False
    ActiveWindow.DisplayVerticalScrollBar = False

    NOTA: Se revierten los cambios colocando los otros estatus "True" por "False" y viceversa.


    APLICAR EN "THISWORKBOOK":
    PARA EVITAR MODIFICAR UNA HOJA DE TRABAJO CON COPIAR, PEGAR, CORTAR, IMPRIMIR O PEGAR

    Application.OnKey "^{c}", "" 'Deshabilita copiar
    Application.OnKey "^{v}", "" 'Deshabilita pegar
    Application.OnKey "^{x}", "" 'Deshabilita cortar
    Application.OnKey "^{p}", "" 'Deshabilita imprimir
    Application.OnKey "^{g}", "" 'Deshabilita guardar


    PARA EVITAR GUARDAR O REEMPLAZAR EL LIBRO DE TRABAJO

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI = False Then
    MsgBox "Opción Prohibída"
    Cancel = True
    End If
    End Sub


    Cordiales saludos

    Ali Castro

    ResponderEliminar