Archive

Posts Tagged ‘InputBox’

Guardar archivo de Excel solo si se ingresa contraseña

November 19, 2012 4 comments

En el artículo llamado Macro para impedir que se guarde un archivo de Excel exponíamos una macro que no te permitía guardar cambios en un archivo ni guardar una copia del mismo.

El código tiene la debilidad de que si queremos, como creadores, guardar cambios que no querramos que otros modifiquen, debíamos deshabilitar macros para hacer los cambios y luego volver a habilitarlas.

La mejora

Mediante la función InputBox lanzamos un diálogo que nos permite introducir una contraseña, y sólo si ingresamos la adecuada, nos permitirá guardar cambios o guardar una copia.

Código

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Pass = "12345"
    Confirma = InputBox("Escribe una contraseña para continuar.", _
        "EXCELeINFO - Guardar")
    If Confirma = Pass Then
    Else
        MsgBox "No tienes permitido guardar el archivo.", vbCritical, _
            "EXCELeINFO"
        Cancel = True
    End If
End Sub

Animación de la macro en ejecución

guardar archivo de Excel solo si se ingresa contraseña

Rellenar celdas en blanco en Excel

Todos nos hemos encontrado alguna vez con archivos que contienen celdas en blanco y se nos vuelve necesario ingresarles un valor para no tener celdas vacías o simplemente para completar datos faltantes.

Método tradicional

El primer método implica usar las funciones que ofrece Excel para elegir las celdas en blanco y después ingresarle un valor.

La manera de elegir las celdas en blanco es:

Inicio > Buscar y seleccionar > Ir a…

Aquí Excel elegirá sólo las celdas que no tengan datos y así podremos insertarle un valor. Una vez elegidas las celdas, ingresamos el valor deseados y posteriormente pulsamos las teclas Ctrl + Enter para que sean copiadas a todas.

image

Excel nos permité elegir celdas con determinado criterio.

Método con macros vba

El segundo método sigue la misma lógica que el primero, pero sacándole provecho a las macros y añadiendo esta funcionalidad a otras aplicaciones que pretendamos realizar. El ejemplo nos pedirá un valor a ingresar.

Código de la macro

Sub RellenarCeldas()
Dim Celdas As Range
Dim Valor As Variant
Valor = InputBox("Ingresa el valor", "EXCELeINFO")
Selection.SpecialCells(xlCellTypeBlanks).Select
For Each Celda In Selection
    Celda.Value = Valor
Next Celda
End Sub

image

Excel solicitará el valor a insertar.