Sei sulla pagina 1di 26

Sesin 1

Excel Avanzado
Macros y VBA
Por: Fernando Santos fsantos@excel-avanzado.com

www.excel-avanzado.com

Conceptos Bsicos
Objetos Propiedades Mtodos Eventos

Estado Activo
Condiciones

Iniciales

Alcances y Limitaciones
Aspecto

funcional. mbito de uso. Rendimiento, desempeo. Requerimientos.

Ejercicios
Habilitar

la Ficha programador. Actualizar el nivel de seguridad. Abrir el editor de VBA. Grabe una macro que elimine una lnea. Grabe una macro que adicione una lnea.

Ejercicios
Identifique

las distintas formas en las que se puede borrar el contenido de una hoja que contiene solo una tabla. Cree una macro que limpie completamente el contenido de la hoja activa. Modifique la macro anterior para que siempre limpie el contenido de la Hoja2.

El Grabador de Macros
Consideraciones

de uso:

Apropiado

para grabar pequeas rutinas. No realiza iteraciones, asignar variables, ni ejecuta condiciones. Eliminar cdigo innecesario.

Prctica - Blackboard

En la pgina: http://www.excel-avanzado.com/UP

Descargue el archivo: UP - Automatizar


-

Realice 5 macros con el grabador destinadas a dar formato al contenido. Aada una macro (con el grabador) para invocar a las macros previamente creadas. Aada un macro (propia) para invocar a las macros previamente creadas.

Registre lo realizado en el Blackboard (18/11/2013)

Revisin del Blog


Si

esta comenzando en la programacin con macros, examine los artculos que se entran disponibles en:

http://www.excel-avanzado.com/introduccion-a-las-macros

Registre

sus comentarios (consultas) durante la semana, estas sern publicadas y resueltas al final de cada da.

Ejemplo de Procedimiento
Sub Sumar() Sum = 1 + 1 MsgBox Resultado: & Sum End Sub

Ejemplo de Funcin
Function MiSuma(arg1, arg2) resultado = arg1*2 + arg2 MiSuma = resultado End Function

Web del Curso

Estructura if then else


Sub Ejemplo01()
Dim Numero01 As Integer Numero01 = Int(10* Rnd() ) If Numero01 > 5 then MsgBox El numero es: & Numero01 Else MsgBox Su numero no es el correcto End If

End Sub

Sub EjemploSelect()

Estructura select case


Dim Acumulado As Integer Acumulado = Int(20 * Rnd()) Select Case Acumulado Case 0 To 3 MsgBox "Tercio inferior: " & Acumulado Case 4 To 6 MsgBox "Tercio medio: " & Acumulado Case 7 To 10 MsgBox "Tercio superior: " & Acumulado Case Else MsgBox "otros valores: " & Acumulado End Select

End Sub

Sub EstructuraForNext() Dim Base As Integer Dim Exponente As Integer Dim Resultado As Integer Dim Contador As Integer Base = 4 Exponente = 4 Resultado = 1 For Contador = 1 To Exponente Step 1 Resultado = Resultado * Base Msgbox Contador va en: & contador Next MsgBox Resultado: & Resultado End Sub

Estructura For Next

Funcin Rango Celdas


Public Function misuma2(datos As Range) Dim vRange As Variant vRange = datos 'nmero de filas numfilas = UBound(vRange, 1) 'nmero de columnas numcolumnas = UBound(vRange, 2) For x = 1 To numfilas For y = 1 To numcolumnas acumula = acumula + datos(x, y) Next Next misuma2 = acumula End Function

Prctica - Blackboard

Revise los ejemplos de funciones definidas por el usuario, y funciones en VBA, en la pagina del curso (www.excel-avanzado.com)

Elabore una funcin propia que cumpla con lo siguiente.


-

Sirva para reemplazar una funcin anidada. La funcin debe usar al menos una estructura de control. La funcin debe emplear al menos un operador lgico. Incluya en el archivo Excel el ejemplo de uso en el que se utilice la funcin creada.

Registre lo realizado en el Blackboard (24/11/2013)

Registro de Datos

Registro de Datos

Web del Curso

Buscar Objetivo con Macros


http://www.excel-avanzado.com/?p=33

Bsqueda y reemplazo Masivo


http://www.excel-avanzado.com/?p=10

Ejercicios
En la pgina : http://www.excel-avanzado.com/UP Descargue los archivos: UP - Tabla Dinmica. UP - Sorteo.

Ejecute la Macro
Interprete

el Resultado

Web del Curso

Sorteo
Solicite

la cantidad de personas a elegir y marque aleatoriamente con SI a dicha cantidad.

Gracias

Potrebbero piacerti anche