Ayuda de Macro
Ayuda de Macro
VBA MACRO
AUTOR:
CRISTHIAN FERNANDO
CASTRO VERA
FACULTAD ECONOMÍA
CUSCO PERU 2021
VBA – MACROS EN EXCEL
En la actualidad ya no es un lujo sino una necesidad primordial en el ámbito laboral. Es por
ello que nos vemos en la necesidad de tratar explicar los conceptos claves para que seas un
excelente programador y puedas brindar las soluciones necesarias en beneficio de la
empresa y éxito laboral
Por lo tanto, en las siguientes líneas citaremos los conceptos claves, luego pasaremos a
demostrar con casos prácticos de la vida real.
CONCEPTOS CLAVES AYUDA OPCIONAL
ENTORNO VBA
Abrimos una hoja de Excel, ALT + F11 para abrir entorno de VBA
Ventana de trabajo
Es equivalente a:
Aplicación en VBA
En este primer procedimiento usaremos la primera función de VBA
MsgBoxt “caja de mensaje”: MsgBox (Mensaje, Tipo de mensaje, Titulo)
InputBox: es un cuadro de mensaje nos permite escribir cualquier cosa sobre él.
Al darle clic nos aparece la ventana de mensaje
Ahora cuando queremos trabajar con celdas debemos emplear dos palabas: [Cells, Range], estas
palabras hacen referencia a una celda.
CARRO
OBJETO
Tienen de la capacidad de ser activados para poner en acción sus funcionalidades; es decir,
disponemos de un procedimiento para ponerlo en marcha, avanzar en retroceso, detenerlo,
voltear a la izquierda o derecha; es decir, mediante un conjunto de métodos podemos darle
uso al objeto automóvil.
En la POO el objeto es el automóvil; las propiedades de este objeto son sus características y los
métodos lo constituyen las funcionalidades o procedimientos con los cuales hacemos uso del objeto
y modificamos su estado o contenido. En el Excel podemos hablar del objeto Celda. Este objeto
tiene dimensiones, color de fondo, tipo de borde, tiene un contenido o valor. Posee algunas
funcionalidades que nos permiten cambiarlo de tamaño, de color de fondo, de contenido. El objeto
celda pertenece al objeto Rango y está relacionada con él y tiene otras relaciones con otros objetos
como el objeto Hoja, el objeto Gráfico, Libro, etc.
CELDA
En resumen, podemos decir que todo objeto tiene propiedades y métodos, por ello en VBA habrá
ocasiones donde al poner Range ‘A4’. [Aquí te aparecerá una mano o un borrador] la mano hace
referencia a propiedad y el borrador métodos. Por ultimo decimos que del objeto Celda vamos a
trabajar su Value y su Select. Antes de explicar el concepto de propiedad haremos un hincapié en
explicar la diferencia entre Cells y Range.
CELLS Y RANGE
Primero debemos saber que cuando queremos hacer referencia a una celda o conjunto de celdas
usamos Cells y Range, y se tiene que conocer su posición especifica en función de fila y columna
que ocupa. Los objetos Range y Cells en la mayoría de casos pueden ser utilizados sin distinción
algunas, sin embargo, hay casos puntuales donde se recomienda el uso de uno de los dos.
Ejemplo:
Range(‘A1’). Value = Valor p/una celda
Range (‘A1:C5’). Value = Valor p/un conjunto de celdas
Cells (fila, columna). Actívate = Activa la celda (fil, col)
Para seleccionar una celda
Ejemplo:
Si se quiere seleccionar la celda "C2", se tiene dos opciones.
Range("C2").select o Cells(2,3).select
* cells(i,j) , donde i=fila i ; j=columna j.
Para dar valor a una celda
Ejemplo:
-Si se desea darle valor a la celda "C2" =620, se tiene dos opciones
Range("C2").value=620 o Cells(2,3).value=620
Range: Su uso es más sencillo y facilita ayuda, se dice que entre las propiedades del objeto
Range están Value, que contiene el valor de la celda Column y Row que contiene
respectivamente la fila y columna de la celda, Font que contiene la fuente de los caracteres
que muestra la celda. Podemos decir que Range como objeto tiene método y estos métodos
sirven para llevar a cabo una acción sobre un objeto. Es decir:
Value
Range
Activate
Cells: Tiene como primer argumento número de fila y como segundo argumento número de
columna, este objeto no nos permite seleccionar un rango porque solamente podemos
especificar una celda a la vez. El objeto Cells ofrece una ventaja que debemos considerar
cuando necesitamos hacer un recorrido programático por varias celdas ya que será muy
sencillo especificar las filas y columnas utilizando una variable numérica.
Ejemplo:
Sub AZUL()
For i = 4 To 40
For j = 2 To 10
Cells(i, j).Value = i * j
Next j
Next i
End Sub
PARTICULARIDADES
Objeto Range
- Permite seleccionar más de una celda.
Ejemplo:
Range("A1:B5").Select
*El objeto Cells, no permite seleccionar más de una celda.
Objeto Cells
- Es compatible con selección de celdas bajo un patrón de formula. La ventaja del uso del objeto
Cells, es permitir vincular funciones numéricas al uso de las celdas y/o a su selección.
Ejemplo:
Se desea conocer la suma que de la combinación de una fila y columna, entonces se establece el
siguiente programa:
Sub celdasuma()
For i = 1 To 10 For j = 1 To 10
Cells(i, j).Value = i + j
Next i
Next j
End Sub
De esta forma se conocerá lo propuesto en el ejemplo, asimismo los rangos podrán ampliarse de
acuerdo a lo deseado. RESUMEN
Un objeto para acceder a una propiedad tiene que ir acompañado de un punto
Range (A2). = "CRISTHIAN"
Puedes usar RANGE cuando estemos usando variables y las variables las tengas que meter en filas
o columnas usar CELLS.
SELECT: te posiciona en una celda, es decir mueve el curso a la celda que quieres seleccionar
¿Sirve usar el SELECT?
No, si queremos optimizar códigos debemos evitar SELECT porque el Select lo que hace es retrasar
tiempo es ¿decir que me sirve mover el cursor? Si nosotros queremos automatizar, lo cual no vamos
a ver cuál es movimiento que hace la Macro.
PROPIEDAD: Como hemos explicado anteriormente las propiedades son las características,
atributos o formas del objeto a las que se hace referencia mediante el uso de variables. Una
propiedad de objeto común de Excel es su Nombre, que nos permitirá usarlos en los diferentes usos
que hagamos del objeto. De manera que una celda, un rango de celdas, una hoja, libro, gráfico o
tabla en Excel, tendrá un nombre con el cual lo identificaremos. Para hacer referencia a las
propiedades mediante los programas en VBA, se usa la sintaxis: NombreDelObjeto.Propiedad
Ejemplo:
Range("A5"). Name: Aquí se hace referencia al nombre del objeto Range de la celda A5.
METODO: Como se mencionó anteriormente son acciones de un objeto, es decir que cosa puede
hacer el objeto por ejemplo el Select: seleccionar una celda. Este método viene pre – programados
en el lenguaje. Por ultimo decimos que realizan tareas típicas, previsibles y comunes para todas las
aplicaciones. Cada objeto o control lleva sus propios métodos.
Ejemplo:
Range("A5"). Select Aquí se ejecuta el método Select, que permite activar la celda
A5 y ponerla en disponible para cualquier otra operación.
Range ("B2:G4"). Formato En este caso, se ejecuta el método Formato sobre el
rango B2:G4. Se supone que el método Formato ya está definido previamente.
EVENTOS: Se dice que un evento es el resultado de una acción, es decir es la forma como queda
el objeto después de alguna acción sobre él. Por lo general estas acciones son producidas por los
métodos que actúan sobre el objeto.
COLECCIONES: Son objetos que agrupan otros objetos con características similares y que son
especialmente útiles cuando se buscan cambiar atributos a todo un conjunto de objetos es decir son
clases a las que pertenece los objetos.
Dónde: El objeto de mayor jerarquía es la misma aplicación del Excel, luego sigue el objeto libro
(Workbook), luego sigue la pestaña (Worksheet) finalmente acaba en Range y Cells. También
podemos tomar en cuenta los gráficos (Charts). Algunas propiedades también realizan la función de
objetos. Por ejemplo, el objeto Application tiene una propiedad ActiveWindow (nombre de la
ventana activa) que a su vez en sí misma es un objeto. Esto puede dar lugar a confunsiones en la
sintaxis. Por ejemplo:
Application. ActiveWindow. ActiveCell. Font. Italic
Aplicando un ejemplo de la jerarquía
Application. Workbooks (1). Worksheets (1). Range("A1"). Value = "Hola"
Insistiendo con la nomenclatura, Application casi nunca es necesario especificarlo, piense que
todos los objetos dependen de este, WorkBooks será necesario implementarlo si en las macros se
trabaja con diferentes libros de trabajo (diferentes archivos), a partir de WorkSheets, es aconsejable
incluirlo en el código, sobre todo si se quiere trabajar con diferentes hojas, verá, sin embargo, que
en muchas ocasiones no se aplica.
VARIABLE
Ahora tocaremos un tema importante VARIABLES, primero partimos del concepto ¿Qué es una
Variable?
Es una palabra que guarda un valor y dicho valor puede ser cambiado en el tiempo.
Cuando utilizo una variable en realidad lo que hago es separar un espacio de memoria, es
decir imagínate que declaras 5 variables estarías separado 5 espacio de memoria.
Cuando usamos variable hay 3 pasos a seguir:
o El primer paso es definir una variable y, para definir una variable nosotros tenemos
que saber el Tipo de Dato: [Integer, String, Long].
o El segundo paso es asignarle un valor y este valor es el signo ¨=¨
o El tercer paso es utilizar la variable, suena lógico ya que nosotros creamos una
variable para crearla.
La forma general de declarar una variable es: DIM variable AS Tipo
Antes de declarar una variable debemos de saber el tipo de dato que vamos aplicar
TIPO ENTERO: Usamos para una variable numérica de valores de – 32768 a 32768, para ello
usamos la sintaxis: “Dim NombreVaraible As Integer”
TIPO LONG: Se usa cuando tenemos números enteros muy grandes en concreto entre -
2.147.483.648 y 2.147.483.648. La sintaxis de este tipo de variables es:
“Dim NombreVaraible As Long”
TIPO SINGLE: Para almacenar valores numéricos decimales, aunque si requerimos una mayor
precisión, usaremos variables tipo Double. El código para declarar variables tipo Single es:
TIPO VERDADERO O FALSO: Nos permite almacenar valores de variables del tipo verdadero o
falso. Su sintaxis es:
TIPO VARIANT: Este tipo nos permite almacenar cualquier tipo de información ya sea
numérica, de texto o del tipo verdadero o falso o cualquier otro que se nos ocurra. En definitiva,
cuando no sabemos qué tipo de variable va a tener usaremos el tipo Variante, donde entran todos
los tipos posibles. El inconveniente es que ocupa una gran cantidad de memoria.
Ejemplo en VBA:
En el ejemplo estamos viendo la ejecución de los 3 pasos que debemos hacer.
Este código nos permite registrar mi nombre y nota ahora procederemos a poner en un botón.
Nos vamos en desarrollador, insertar y control de botón, escogemos el procedimiento8
Ahora haremos un ejercicio usando lo condición si en VBA es IF CONDICION. THEE
Las variables Publicas también conocidas las variables de nivel proyecto se crean con una
declaración Public en la parte superior de cualquier módulo, fuera de cualquier procedimiento.
Estas variables estarán disponibles en todos los procedimientos del proyecto, se encuentren en el
mismo módulo donde se ha declarado o en cualquier otro. La variable contendrá los valores hasta
que se cierre el proyecto
BUCLES
En la programación y en el VBA los bucles o también conocidos como ciclos son importantes ya
que es una instrucción que permite repetir la ejecución de líneas de código hasta que se cumpla la
condición que hayamos especificado, estos métodos son muy utilizados para la estructura del
control de flujo.
El codigo establece que la variable x tenga los valores 1,2, 3 … 10, y cada uno de estos valores se
ejecuta a través del codigo VBA dentro del ciclo
BUCLES DETERMINADOS
Los Bucles determinados será aquel que repite una serie de líneas de códigos un número
determinado de veces, esto quiere decir que sin necesidad de ejecutar el programa solo leyendo el
código sabemos a priori cuantas veces se va ejecutar el código del bucle, sabemos sin ejecutar el
programa si repetirá las líneas 7 veces, 17, 90 o 107 lo sabemos exactamente el número que va
repetir. En resumen, se sabe a priori cuantas veces se repetirá el código de su interior
For
For – each
FOR – EACH (Para cada Bucle)
Este bucle es parecido al bucle for – Next en lugar de recorrer un conjunto de valores para una
variable, el ciclo for each se ejecuta a través de todos los objetos dentro de un conjunto de objetos,
es decir se dice que este bucle se puede realizar bucles en colección de objetos (como las hojas, los
libros, etc.). En resumen, puede usarse para iterar una colección de objetos.
La sintaxis es:
Sub xxx ()
For each (objetos dentro del conjunto)
Se escribe el objetivo que quiere que se realice en ese conjunto
Next Se finaliza la función For Each
End sub ()
BUCLES INDETERMINADOS
Los Bucles indeterminados son aquellos sin ejecutar el programa solo leyendo el código de
programación no sabemos cuántas veces repetirá el código de su interior, solamente podemos saber
cuántas veces va repetir el código cuando el programa este en ejecución y comience a funcionar, si
nosotros vemos el programa en ejecución y estamos viendo que falla una vez y otra y otra sabemos
cuántas veces lo va repetir, es decir cada vez que falle lo va repetir … por ello decimos que este tipo
de bucles repetirá el código dependiendo de las circunstancias durante la ejecución del programa
Un ciclo Do – While se repite siempre que una determinada condición sea verdadera
Por otro lado, un ciclo Do – Until itera hasta que una condición no es verdadera
Por ello decimos que nos permite realizar un bucle mientras la condición sea falsa, tiene dos formas
de uso, se puede verificar la condición al principio del ciclo o al final del ciclo. En resumen, se usa
cuando queremos repetir un conjunto de declaraciones siempre que la condición sea falsa.
DIAGRAMA DE FLUJO DE UN BUCLE DE EJECUCION HASTA EN VBA
Sintaxis 1:
En esta sintaxis Do-Until, la condición del bucle se verifica junto con la instrucción Do.
Si la condición es falsa, entonces se ejecuta el 'bloque de código' dentro del bucle hasta que
se ejecute, y comienza la siguiente iteración. Cada iteración antes de comenzar verifica la
condición del bucle, y el 'bloque de código' dentro del bucle de hacer hasta que solo se
ejecuta cuando la condición se evalúa como falsa.
Cuando la condición de bucle se vuelve verdadera, no se producen más iteraciones de bucle
y el flujo de control salta a la siguiente declaración fuera del bucle Do Until.
Sintaxis 2:
NOTA: Si la condición es Verdadera, todas las declaraciones se ejecutan hasta que se encuentra la declaración Wend. A continuación,
el control vuelve a la instrucción While y se vuelve a comprobar la condición. Si la condición sigue siendo Verdadera, el proceso se
repite. Si no es Verdadero, la ejecución se reanuda con la declaración que sigue a la declaración de Wend.
Mientras ... Los bucles Wend se pueden anidar en cualquier nivel. Cada Wend coincide con el más reciente bien
OPERADOR DEFINICION
Operador (+) Se utiliza para añadir un valor a otro y también para concatenar cadenas
Operador ( - ) Se usa para hallar la diferencia entre 2 o + números y también para mostrar número como
negativo
Operador ( * ) Se utiliza para multiplicar un valor por otro
Operador (^) Se utiliza para elevar un número a la potencia de otro número
Operador Se utiliza para hallar el resto de la división
MOD
Operador And Combina 2 condiciones simples y devuelve un valor que es verdadero si estas 2 condiciones
son V
Operador Or Devuelve el valor verdadero cuando una de las 2 expresiones es verdadera
Operador Not Se utiliza sobre una sola condición para negar su valor
FORMULARIOS Y CONTROLES
FORMULARIOS
Los formularios o UserForm es una ventana que tiene un conjunto de controles insertados
por el usuario y hacen uso de controles Activex disponibles que nos permite solicitar
información al usuario. Para crear un formulario nuevo hay que utilizar el comando
UserForm desde el menú insertar
Como panel para introducir datos y el resultado de un cálculo realizado con dichos
datos.
Para introducir datos en una hoja de cálculo.
Para recuperar datos almacenados en una hoja de cálculo.
Podemos decir que los diferentes tipos de formularios en Excel nos evitaran inconvenientes
y problema alguno ya que podremos tener cierto grado de control sobre el ingreso de datos
que otras personas realizan sobre nuestras hojas de Excel.
CONTROL DE FORMULARIOS
Los controles de formulario en Excel son objetos que podemos colocar dentro de una hoja
y que nos darán funcionalidad adicional para interactuar mejor con los usuarios y tener un
mejor control sobre la información.
Los controles tienen propiedades específicas, pero también hay propiedades comunes a
todos ellos, que son las siguientes:
TABLAS DINAMICAS CON VBA
OBJETO PIVOTTABLE
Presenta un informe de tabla dinámica de una hoja de cálculo. Podemos decir que el objeto
PivotTable contiene todos los objetos PivotTable de una hoja de cálculo puesto que la
programación de informes de tabla dinámica puede ser complicada, normalmente es más
fácil grabar las acciones de informes de tabla dinámica y después revisar el código grabado.
Ejemplo:
METODOS
DESCRIPCION
Agrega un campo de datos a un informe de tabla, devuelve un objeto PivotTable que
representa el nuevo campo de datos. Sintaxis:
AddDataField
AddDataField (Field, Caption, function)
AllocateChanges
Expresión. AllocateChanges … expresión variable que representa un objeto
PivotTable
Este método genera un error en tiempo de ejecución si se ejecuta en un informe de
tabla dinámica basado en un origen de datos que no es de OLAP.
Devuelve una colección CalculatedFields que representa todos los campos calculados del
informe de tabla dinámica especificado. Solo lectura. Su sintaxis:
CalculatedFields
expresión. CalculatedFields … donde la expresión Variable que representa un
objeto PivotTable .
Cambia la conexión del objeto PivotTable especificado, solo se puede usar con una tabla
dinámica que esté conectada a un origen de datos externo. Su sintaxis es:
Cambia el objeto PivotCache de la tabla dinámica especificada, solo se puede usar con una
tabla dinámica que use datos almacenados en una hoja de cálculo como origen de datos. Su
sintaxis es:
ChangePivotCach BSRT: Es obligatorio, tipo de dato String, el objeto PivotTable o PivotCache que
e representa la nueva PivotCache de la tabla dinámica especificada.
Elimina todos los filtros aplicados actualmente a la tabla dinámica. Esto incluye eliminar
todos los filtros de la colección PivotFilters , quitar los filtros manuales aplicados y establecer
todos los campos dinámicos en el área de filtro de informe en el elemento predeterminado. Su
ClearAllFilters sintaxis es:
CreateCubeFile Crea un archivo de cubo a partir de un informe de tabla dinámica conectado a un origen de
datos OLAP (Online Analytical Processing). Su sintaxis es:
Archivos: Es necesario, tipo de dato String, nombre del archivo de cubo que
se va a crear. Si el archivo existe, se sobrescribirá.
Medidas: Opcional, tipo de dato Variant, Matriz de nombres únicos de medidas
que formarán parte del sector.
Miembros: Opcional, tipo de dato Variant, Matriz de cadenas de caracteres. Cada
elemento de la matriz es un nombre de nivel único. Representa el nivel inferior de
una jerarquía que está en el sector.
Propiedades: Opcional, tipo de dato Variant, Matriz de matrices de cadenas. Los
elementos se corresponden, por orden, con las jerarquías representadas en la
matriz Levels. Cada elemento es una matriz de matrices de cadenas que se compone
de los nombres exclusivos de los miembros del nivel superior de la dimensión que
se van a incluir en el sector.
DiscardChanges Descarta todos los cambios realizados en las celdas editadas de un informe de tabla dinámica
basado en un origen de datos OLAP. Para un informe de tabla dinámica basado en un origen
de datos OLAP, el método quita todos los valores y las fórmulas especificados en las celdas
de valor y, a continuación, ejecuta una operación de actualización de tabla dinámica para
recuperar los valores más recientes del origen de datos. Su sintaxis:
expresión. DiscardChanges.
DrillDown Permite profundizar en los datos dentro de una jerarquía de cubos basada en OLAP o en
PowerPivot. Su sintaxis es: expresión. Obtención de detalles (Pivotltem, PivotLine)
DrillTo Permite profundizar en una ubicación dentro de una jerarquía de cubos basada en OLAP o en
PowerPivot. Su sintaxis es: expresión. Drillto (Pivotltem, CubeField, PivotLine
DrillUp Permite profundizar en los datos dentro de una jerarquía de cubos basada en OLAP
o en PowerPivot. Su sintaxis es: expresión. DrillUp (Pivotltem, PivotLine,
LevelUniqueName)
GetData Devuelve el valor para el archivado de datos en una tabla dinámica. Su sintaxis es:
expresión. GetData (Nombre)
Index: opcional, tipo de datos Variant, Nombre o número del campo que se
devolverá
Name, obligatorio, tipo de dato String, parte del informe de tabla dinámica
que seleccionar.
Mode, opcional, tipo de dato XIPTSelectionMode, especifica el modo de
selección estructurado
UseStandardName, opcional, tipo de dato Variant, True para macros
grabadas que se reproducirán en otras configuraciones regionales.
PivotTableWizard Crea y devuelve un objeto PivotTable. Este método no muestra el Asistente para
tablas dinámicas. Este método no está disponible para orígenes de datos OLE
DB. Utilice el método Add para agregar una memoria caché de tabla dinámica y, a
continuación, crear un informe de tabla dinámica basado en la memoria caché. Su
sintaxis es:
expresión.PivotTableWizard (SourceType, sourceData, TableDestination, TableN
ame, RowGrand, ColumnGrand, savedata, HasAutoFormat, AutoPage, reservado, _
BackgroundQuery_, OptimizeCache, PageFieldOrder, PageFieldWrapCount, Read
Data, Connection)
PivotValueCell Recuperar el objeto PivotValueCell de una tabla dinámica dada, siempre que haya
determinados índices de fila y de columna. Su sintaxis es: expresión.
PivotValueCell (RowLine, ColumnLine)
RefreshDataSourc Recupera los valores actuales del origen de datos para todas las celdas editadas en
eValues un informe de tabla dinámica que está en modo de escritura diferida. Su sintaxis es:
expresión. RefreshDataSourceValues
RefreshTable Actualiza el informe de tabla dinámica a partir de los datos de origen. Devuelve
True si se realiza correctamente. Su sintaxis es: expresión. RefreshTable
RepeatAllLabels Especifica si se van a repetir etiquetas de elementos para todos los campos
dinámicos de la tabla dinámica especificada. Su sintaxis: expresión.
RepeatAllLabels (Repetir)
RowAxisLayout Este método se utiliza para definir simultáneamente opciones de diseño para todos
los campos dinámicos existentes. Su sintaxis es: expresión. RowAxisLayout
ShowPages Crea un informe de tabla dinámica nuevo por cada elemento del campo de
páginas. Cada informe de tabla dinámica se creará en una nueva hoja de cálculo. Su
sintaxis es: expresión. ShowPages (PageField)
SubtotalLocation Este método cambia la ubicación del subtotal para todos los campos dinámicos
existentes. Cambiar la ubicación del subtotal tiene un efecto visual inmediato sólo
para los campos en formato de diseño, pero se establecerá también para los campos
que están en formato tabular.
Update Actualiza el informe de tabla dinámica.
https://docs.microsoft.com/es-es/office/vba/api/excel.pivottable
OBJETO SHAPE
http://codevba.com/es/Excel/Shape.htm#.YEF6iVVKiM8
OBJETO CHART
DEFINICION
MsgBoxt: Es una función que sirve para mostrar los resultados de un cálculo o para
lanzar los mensajes. Se le conoce también como caja de salida o mensaje. En
resumen, es una función que sirve para mostrar un mensaje dentro de un cuadro de
dialogo.
Su argumento es:
MsgBox (Mensaje, Tipo de mensaje, Titulo)
Donde:
Msgbox = mensaje, tipo critico (obligatorio)
Buttons = tipo de Mensaje (opcional)
Title = Titulo de mensaje (opcional)
Ejemplo n°1
Como el 1mer argumento de la función es obligatoria podemos crear un mensaje
informativo con la siguiente línea de código.
Private Sub CommandButton1_Click ()
MsgBox "Hola Mundo"
End Sub
El botón comando, nos permite encapsular procedimientos para que utilice el usuario dándole el clic
sobre el
Ejemplo n°2
Hablaremos sobre el título de mensaje, para poner un título personalizado será suficiente
indicarlo de la siguiente manera:
Private Sub CommandButton2_Click()
MsgBox "Hola Mundo", , “Mensaje especial”
End Sub
Ejemplo n°3
Hasta ahora solo has visto el botón Aceptar en el cuadro de diálogo, pero el segundo
argumento de la función MsgBox nos permitirá indicar los botones que deseamos mostrar y
también podremos elegir el icono desplegado y el comportamiento del cuadro de diálogo.
La siguiente tabla indica los valores que podemos utilizar para este argumento:
1) Primer grupo: Del número (o al 5) nos permite indicar los botones que se mostrarán en
el cuadro de diálogo
2) Segundo grupo: Del número (16, 32, 48,64) determinará el tipo de ícono mostrado,
3) El tercer grupo (0, 256, 512, 768) es útil para indicar el botón predeterminado
4) El cuarto grupo (0, 4096) es la modalidad del cuadro de diálogo
5) El último grupo que son los valores restantes, nos permiten indicar la alineación del
texto y si deseamos mostrar un botón de Ayuda.
Ya que los valores de cada grupo son excluyentes, solo hace sentido elegir un valor de cada uno de
ellos. De esta manera, si deseo mostrar los botones Si y No, y además mostrar un icono de mensaje
de advertencia, entonces debo utilizar la siguiente instrucción:
Private Sub CommandButton3_Click ()
MsgBox "Hola Mundo", “vbYesNo + vbExclamation, “Mensaje especial”
End Sub
InputBox: Es un cuadro de dialogo que solicita al usuario un valor, es decir es un
cuadro de mensaje nos permite escribir cualquier cosa sobre él.
Su argumento es:
InputBox (Mensaje, Titulo, Predeterminado)
Donde:
Promt = especifica la leyenda que mostrará la caja de mensajes
Title = especifica el título que llevará el cuadro de diálogo
Default = “predeterminado”, es el texto que mostrará la caja de texto.
CONDICIONES
If: Es una condición que verifica la condición ingresada es verdadera o no. En
resumen, es una condición a evaluar.
Else: Es una condición que acompaña al if, lo cual indica la acción a llevar a cabo
en caso la condición if no se cumpla.
If – Then: Son condiciones que nos permite validar para tomar una buena decisión,
en base a una condición, esta condición podemos traducirla como un Si – Entonces.
Es decir “SI cumple la condición ENTONCES hazlo”
Select Case: Debemos recordar que en VBA equivale a la instrucción SWITCH de otros
lenguajes. Esta función nos permite tener el control de las instrucciones agrupándolas. De
manera que trata de asignar y clasificar en función de una única variable con varios posibles
resultados. Esta expresión puede ser evaluada en un valor numérico o cadena de texto. En
resumen, es una función de una única variable con varios posibles resultados
Su argumento es:
Select [Case] expresión a evaluar
b) De intervalo: usando la palabra clave To. Por ejemplo, Case 12 To 14 indicaría que si la
expresión evaluada tiene un valor comprendido entre 12 y 14 (incluidos los extremos de los
intervalos), se ejecutarán las instrucciones anexas.
c) De comparación: usando la palabra clave Is. Por ejemplo, Case Is <= 14 indicaría que
si la expresión evaluada tiene un valor menor o igual a 14 se ejecutarán las instrucciones
anexas.
Sub: Es una función que No devuelve un valor, de manera que esta función puede
ser llamada por un procedimiento u otra función y las funciones tienen tipo
(“Integer, String, Doublé, Long, etc.”) ya que devuelve un valor. Por lo tanto,
cuando queremos que el Excel VBA realice algunas acciones, puede usar un sub.
SET: Se utiliza para asignar valores a una variable tipo objeto, su sintaxis es:
Set NombreVaraible = NombreObjeto
Set Celda = Worksheets("Hoja1").Range("A1")
While
For each
Vlookup
CÓDIGOS MÁS COMUNES
Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Orden Descendent
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom: =1, MatchCase: =False, Orientation: =xlTopToBottom
Buscar
Cells. Find(What: ="CRISTIAN CASTRO", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=
_False).Activate
Insertar Fila
Selection.EntireRow. Insert
Eliminar Fila
Selection.EntireRow. Delete
Insertar Columna
Selection.EntireColumn. Insert
Eliminar Columna
Selection.EntireColumn. Delete
Abrir un Libro
Workbooks.Open Filename: ="C:\Mis documentos\miarchivo.xls"
Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\tauro.xls", FileFormat
_:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _False,
CreateBackup:=False
Datos importantes
Se utiliza un TextBox (caja de texto) para el uso de ingreso y validación de datos.
El CommandButton (Botón de comando), este botón me permite encapsular
procedimientos para que sean utilizados por el usuario con solo hacer clic sobre él
REPASO
CONTROLES DE FORMULARIOS
Barra de desplazamiento. Al hacer clic en las flechas se va desplazando la barra dentro de un
intervalo predefinido.
Botón. El botón nos permite ejecutar una macro al momento de hacer clic sobre él.
Botón de opción. Nos permite una única selección dentro de un conjunto de opciones.
Casilla de verificación. Permite la selección o no selección de una opción.
Control de número. Nos ayuda a aumentar o disminuir un valor numérico.
Cuadro combinado. Es una combinación de un cuadro de texto con un cuadro de lista.
Cuadro de grupo. Agrupa varios controles dentro de un rectángulo.
Cuadro de lista. Muestra una lista de valores de los cuales podemos elegir una sola opción o
múltiples opciones de acuerdo a la configuración del control.
Etiqueta. Permite especificar un texto o breves instrucciones en el formulario.