Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Una macro es una grabación de acciones que luego podremos reproducir.
Grabar una macro:
View → Macros → Record Macro → Hago las operaciones que quiero grabar → View → Macros → Stop Recording
Reproducir una macro:
Pulso el botón o la combinación de teclas que escogí para reproducir la macro.
Editar macros:
View → Macros → Record Macro →Macros → Edit
Formato
0.00 → Muestra los números con una aproximación determinada.
0,987 → 0,99 0.987 → 0.987
Los números omitidos serán redondeado.
#,# → Omite son decimales innecesarios.
0,0 → ,5
#.# → Introduce separador de miles.
444444444 → 444.444.444
Macros
Grabar una macro:
View → Macros → Record Macro → Hago las operaciones que quiero grabar → View → Macros → Stop Recording
Macro a grabar(introducir formato de miles):
Botón derecho sobre la/s celda/s → Format Cells → Number → Custom → #.##0,00
Reproducir una macro:
Pulso el botón o la combinación de teclas que escogí para reproducir la macro.
Modificación del shortcut y la descripción de una macro:
View → Macros → View macros → Options →
Si mantengo pulsado SHIFT, esta tecla se añadirá a la combinación necesaria para ejecutar la macro.
Si el atajo del teclado introducido ya existe, se sobreescribirá.
Añadir una macro a la barra de herramientas de acceso rápido:
Botón derecho sobre la barra de herramientas de acceso rápido → Customize quick acces toolbar → Choose commands from: macros → add (botón modify para modificar el icono de la macro) → ok
Selección de celdas por criterios
Home → Editing → Find & Select →
– Opciones por defecto.
– Go to special.
Ejercicio
Hacer una macro que coloree celdas en rojo con borde negro y aplicar dicha macro a todos los textos del documento.
Asociar una macro a un componente
Insert → shape → botón derecho sobre el componente → assing Macro
Ejercicio: al pulsar sobre un botón con el texto ordenar alfabéticamente, los empleados deben ordenarse alfabéticamente. Si pulso sobre el botón ordenar por edad, los empleados debe ordenarse de acuerdo a su edad.
VBA
Una macro es un pequeño programa escrito en VBA (visual basic for applications).
Podemos acceder al código fuente de nuestras macros pulsando alt+F11.
Aparecerá un explorador de proyectos (View → proyect explorer) con el proyecto abierto y sus correspondientes hojas, y debajo otro panel con las propiedades del proyecto (View → Properties window).
Código Macro sencilla
Sub holaMundo()
MsgBox(“Hola, buenos días”);
End Sub
Mostrar el valor de una celda
Sub holaMundo()
MsgBox ("El valor de la celda D2 es: " & Range("D2"))
End Sub
If
Poner expresamente la propiedad Value es opcional.
Sub holaMundo()
If IsNumeric(Range("D2").Value) = True Then
MsgBox ("La celda contiene un número")
End If
End Sub
Else
Sub holaMundo()
If IsNumeric(Range("D2")) = True Then
MsgBox ("La celda contiene un número")
Else
MsgBox ("La celda no contiene un número")
End If
End Sub
Otras condiciones
If Range("D2") > 200 Then If Range("D2") > 200 = True Then < >= <= == <>
And Or
If Range("D2") >= 200 And Range("D2") < 100 Then
If Range("D2") >= 200 And Range("D2") < 100 Then
WITH
Sub holaMundo()
With Range("D2")
If .Value >= 200 And .Value < 100 Then
MsgBox ("La celda D2 contiene un valor mayor de 200")
End With
End Sub
Sub holaMundo()
If Range("D2").Value > 100 And Range("D2").Value < 200 Then
MsgBox ("La celda D2 contiene un valor entre 100 y 200")
End If
End Sub
Select – Case
Sub holaMundo()
With Range("A1")
Select Case .Value
Case Is > 70
MsgBox ("Valor mayor que 20")
Case Is < 10
MsgBox ("Valor menor que 10")
Case 40 To 50
MsgBox ("Valor entre 40 y 50")
Case Else
MsgBox ("Ninguno de los anteriores")
End Select
End With
End Sub
Cambiar el color de una celda
Range("A1").Interior.ColorIndex = 3
Range("A1").Interior.ColorIndex = xlColorIndexNone
Ejercicio
Al pulsar un botón comprobar el valor de una celda. Si es mayor que 1000, pintar la celda de verde; si es menor que 500, pintarla de rojo, sino, mostrar un mensaje de alerta.
For
For i = 1 To 10
Cells(1, i) = "Hola mundo!"
Next i
Ejercicio
Pintar las 30 primeras celdas de la tercera columna (D) de rojo.
Ejercicio
Al pulsar un botón comprobar el valor de las 30 primeras celdas de la tercera columna (D). Para cada celda, si es mayor que 1000, pintar la celda de verde; si es menor que 500, pintarla de rojo, sino, mostrar un mensaje de alerta.
Para resolver el ejercicio, mezclar width con select-case.
Selección
Absolute (Selecciona la celda E8):
Sub Macro1()
Range("E8").Select
End Sub
Relativa:
Sub seleccionRelativa()
ActiveCell.Offset(-2, 4)Range("A1:B3").Select
End Sub
Desplazamiento vertical y horizontal a partit de la celda en la que estoy.
A partir de la celda seleccionada, haremos un cuadro de selección que si comenzase en el origen iría desde la celda A1 a la A3.
Bucle For
Sub BucleFor()
Range("B1").Select
For counter = 1 To 50
ActiveCell.Offset(3, 0).Range("A1").Select
Selection.Interior.Color = RGB(255, 0, 0)
Next counter
End Sub