Libro de Vba Excel
Libro de Vba Excel
Libro de Vba Excel
Excel VBA
PARTE VI: Cdigo de inters (I) . Generalidades
INDICE
1 Cdigo VBA, casos y ejemplos simples ............................................................................................... 1
1.1 Condiciones con IF...THEN...ELSE.................................................................................................. 1
1.1.1 Comprobar que un nmero escrito en la celda activa es el requerido .................. 1
1.1.2 Comprobar que un nmero escrito en la celda activa es el requerido en caso
contrario mostrar error............................................................................................................................. 1
1.2 Acciones con rangos de Excel, cdigo VBA ................................................................................ 1
1.2.1 Seleccionar rangos en Excel con VBA. Una celda, una columna o fila, rangos
distintos, etc. .................................................................................................................................................. 1
1.2.2 Edicin de Rangos en Excel con VBA. Borrar e introducir contenido, etc ............ 2
1.3 Acciones con una hoja de Excel, cdigo VBA ............................................................................ 3
1.3.1 Ocultar/Mostrar hojas ............................................................................................................ 3
1.3.2 Proteccin de hojas .................................................................................................................. 3
1.3.3 Desproteger una hoja de Excel............................................................................................. 3
1.3.4 Varias acciones con las hojas, Seleccionar una hoja, cambiar el zoom ................ 3
1.3.5 Imprimir la hoja seleccionada, ocultar la cuadricula, ................................................ 3
1.3.6 Ocultar la cuadrcula de la hoja activa ............................................................................. 3
1.3.7 Ocultar encabezamiento de filas y columnas ................................................................. 4
1.4 Acciones con un libro, cdigo VBA................................................................................................ 4
1.4.1 Cerrar un libro ........................................................................................................................... 4
1.4.2 Cierra el libro que esta activo en ese momento ............................................................. 4
1.4.3 Abrir libro en la misma ruta o carpeta ............................................................................. 4
1.4.4 Abrir libro que este en otra ruta o carpeta que el libro activo ................................ 5
1.4.5 Abrir cualquier libro de Excel a travs del cuadro de dialogo Abrir archivo .. 5
1.4.6 Guardar libro activo ................................................................................................................ 5
1.4.7 Guardar libro a travs del cuadro de dialogo Guardar como ............................... 5
1.5 Acciones con la aplicacin Excel, cdigo VBA. Modificar la apariencia de Excel y
salir de la aplicacin. ....................................................................................................................................... 6
1.5.1 Evitar que la pantalla parpadee ......................................................................................... 6
1.5.2 Ocultar la barra de estado..................................................................................................... 6
1.5.3 Ocultar la barra de frmulas ................................................................................................ 6
1.5.4 Pasar a pantalla completa .................................................................................................... 6
1.5.5 Maximizar Excel ........................................................................................................................ 6
1.5.6 Ocultar pestaas de las hojas ............................................................................................... 6
1.5.7 Copiar-Pegar .............................................................................................................................. 7
1.5.8 Salir de Excel con VBA ............................................................................................................. 7
1.5.9 Salir de Excel guardando los cambios ............................................................................... 7
2 Cmo automatizar una accin al abrir Excel: ir a una hoja concreta, introducir fecha
actual en una celda y pasar a modo pantalla completa ......................................................................... 8
3 Automatizar una tarea cuando una celda cambia........................................................................ 11
3.1 Objetivo ................................................................................................................................................ 11
3.2 Solucin propuesta .......................................................................................................................... 11
4 Bibliografa................................................................................................................................................... 12
www.jggomez.eu Pgina |1
1.2.1 Seleccionar rangos en Excel con VBA. Una celda, una columna o
fila, rangos distintos, etc.
1) Seleccionar una celda
Sub SeleccionarCeldaA1()
Range("A1").Select
End Sub
2) Seleccionar una celda que est 2 filas ms arriba y una columna ms a la derecha
que la celda actualmente seleccionada.
www.jggomez.eu Pgina |2
Sub CambiarSeleccionCelda()
ActiveCell.Offset(-2, 1).Select
End Sub
3) Seleccionar toda la columna A.
Sub SeleccionarColumnaA()
Range("A:A").Select
End Sub
4) Seleccionar toda la fila 1.
Sub SeleccionarFila1()
Range("1:1").Select
End Sub
5) Seleccionar rangos distintos.
Sub SeleccionarRangosDistintos()
Range("A1:A4,B5,C4:D4").Select
End Sub
Sub BorrarContenidoRango()
Selection.ClearContents
End Sub
7) Borrar fila seleccionada.
Sub BorrarFila()
Selection.EntireRow.Delete
End Sub
8) Borrar columna seleccionada.
Sub BorrarFila()
Selection.EntireColumn.Delete
End Sub
9) Introducir valor en celda 1
Introducir el valor 1000 en la celda A1 de la hoja activa (si lo que se introduce es texto,
debe ir entre comillas y si lo que se introduce es un nmero seguido de un texto, deben
ir separados por el smbolo &).
Sub IntroducirValor()
Range("A1") = 1000
End Sub
10) Introducir valor en celda 2
Introducir el valor 1000 en la celda A1 de la hoja2 (si lo que se introduce es texto, debe
ir entre comillas y si lo que se introduce es un nmero seguido de un texto, deben ir
separados por el smbolo &).
Sub IntroducirValor()
Sheets("Hoja2").Range("A1") = 1000
End Sub
www.jggomez.eu Pgina |3
1.3.4 Varias acciones con las hojas, Seleccionar una hoja, cambiar el
zoom
Seleccionar una hoja de Excel (el nombre debe ser el que aparece en la pestaa de la
hoja).
Sub SeleccionarHoja1()
Sheets("Hoja1").Select
End Sub
Cambiar el zoom de una hoja de Excel
Sub Zoom120()
ActiveWindow.Zoom = 120
End Sub
Sub ImprimirHojaActiva()
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End Sub
Sub OcultarCuadricula()
ActiveWindow.DisplayGridlines = False
End Sub
Sub CerrarLibro1()
Dim TestWorkbook As Workbook
Set TestWorkbook = Nothing
On Error Resume Next
Set TestWorkbook = Workbooks("Libro1.xlsx")
On Error GoTo 0
If TestWorkbook Is Nothing Then
MsgBox "El archivo no estaba abierto"
Else
Workbooks("Libro1.xlsx").Close
End If
End Sub
1.4.4 Abrir libro que este en otra ruta o carpeta que el libro activo
Abre un libro de Excel llamado "Libro1.xlsx" que est en la ruta :
C:\Carpeta1\Carpeta2\Carpeta3
Sub AbrirLibro1RutaConcreta()
Dim TestWorkbook As Workbook
Set TestWorkbook = Nothing
On Error Resume Next
Set TestWorkbook = Workbooks("Libro1.xlsm")
On Error GoTo 0
If TestWorkbook Is Nothing Then
ruta = "C:\Carpeta1\Carpeta2\Carpeta3"
Workbooks.Open Filename:=ruta & "\Libro1.xlsx"
Else
MsgBox "El archivo ya estaba abierto"
End If
End sub
Sub EvitarParpadeoPantalla()
Application.ScreenUpdating = False
End sub
1.5.7 Copiar-Pegar
Quitar el modo "Copiar-Pegar" (quitar el recuadro de puntos intermitentes que se queda
en una celda cuando la copiamos al portapapeles y la tenemos dispuesta para pegar).
Sub QuitarModoCopiarPegar()
Application.CutCopyMode = False
End sub
Ilustracin 1
Ilustracin 2
Ilustracin 3
(Slo tenemos que presionar ESC para salir del modo pantalla completa)
Esto es tan slo un ejemplo sencillsimo, pero basta con escribir un cdigo diferente
diseado con alguna finalidad y situarlo en el lugar explicado (entre las instrucciones
Sub y End Sub), para obtener la automatizacin de una tarea.
A veces, es necesario saber el resultado que obtendramos en un grfico o en cualquier
celda calculada, dependiendo de un valor que nosotros necesitamos variar de forma
interactiva, dinmica e intuitiva. Esta necesidad suele surgir en planes de viabilidad,
gestin de presupuestos y aplicaciones similares en las que la administracin de varios
escenarios es su razn de ser.
Ilustracin 4
www.jggomez.eu P g i n a | 11
Ilustracin 5
Se nos abre una ventana a la derecha y, en ella, debemos escribir el siguiente cdigo:
Private Sub Worksheet_Change(ByVal Target As Range)
Celda = "B7"
If Not Application.Intersect(Target, Range(Celda)) Is Nothing Then
MsgBox ("Ha cambiado el valor de la celda")
End If
End Sub
Cerramos el editor de VBA y volvemos a la Hoja1 que es la que contiene la celda sobre
la que hemos escrito el cdigo (celda B7 .... como podemos leer dentro del cdigo). Si
escribimos algo para cambiar el valor de B7, obtendremos un mensaje:
www.jggomez.eu P g i n a | 12
Ilustracin 6
por el cdigo que queramos, y obtendremos una reaccin al cambio sufrido por la celda
B7.
Tambin podemos hacer que la reaccin se obtenga al cambiar cualquier cosa dentro de
un rango de celdas (no slo una celda). En ese caso, debemos sustituir en el cdigo la
referencia a la celda B7, por la referencia al rango de celdas (por ejemplo: B1:C4),
quedando as:
4 Bibliografa
http://www.temporaexcel.blogspot.com.es/search/label/Nivel%203%3A%20Avanzado