Visual Basic for Applications



Documentos relacionados
Enviar Felicitación Navideña por con Off. 2007

LABORATORIO Nº 1 Sistemas de Información asociados a los Formularios en Excel

Introducción. Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales

1. Lee bien la siguiente información, allí encontrarás varios ejemplos que debes escribir en editor de Visual Basic de Excel.

Formulario VBA en Excel. Creación del formulario. Actividad grado 10.

MACROS. Automatizar tareas a través del uso de las macros.

Curso Excel Básico - Intermedio

Curso de Excel Avanzado

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Excel Excel Avanzado. Parte 2 Tema: Macros. L.I. Luis Adrián Valdez Mendivil

Programación con VBA Excel

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

VB For Applications For Excel 2010

ComboBox: cuadro o caja combinada, permite tener varias opciones de las cuales seleccionar y ver una.

Cómo nombrar variables ( 2&

Combinar correspondencia (I)

MS-Excel 2007, Intermedio Avanzado (30 horas)

Curso de Visual Basic Lección 1 Area Interactiva -

TABLAS DINÁMICAS Y UTILIZACION DE MACROS PARA LA ORGANIZACIÓN DE INFORMES MICROSOFT EXCEL Unidad N 4

Macros y VBA en MS Excel (Visual Basic for Applications) Aplicaciones para Ingeniería. Profesores: Hugo Mora, Ignacio Casas

Tutorial Básico de vbscript

MACROS Y FORMULARIOS

Contenido. Samayra Niebles Velasquez

MANUAL APLICACIÓN. SOFTWARE GESTIÓN DE CLÍNICAS DENTALES

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

1 UNIDAD 4 - CREA TABLAS DINÁMICAS Y GRÁFICOS DINÁMICOS

Seminario de Actualización - Excel Avanzado y Macros. Visual Basic. Conceptos Básicos de Visual Basic para Aplicaciones

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

Macros y lenguaje VBA Aprender a programar con Excel (2ª edición)

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Base de datos en Excel

Microsoft Office XP Access XP (III)

Vincular datos entre Word y Excel.


F O R M U L A R I O S FORMULARIOS

Funcionalidades de Búsqueda (Search Mode) y Asignación Manual de Usuario

Comencemos a programar con. Entrega 10. Estructuras de Control II

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

Excel Macros. Pedro Chávez Lugo webpage: pedro. 17 de enero de 2014

TÉCNICAS DE GESTIÓN ADMINISTRATIVA PARA PEQUEÑAS EMPRESAS

Ejercicio 3 Diapositivas Interactivas.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Para aquellos que tengan conocimientos de Access es lo más parecido a una consulta de referencias cruzadas, pero con más interactividad.

2_trabajar con calc I

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

Tabla dinámica. Vamos a crear una tabla dinámica a partir de un conjunto de datos.

Database Manager Manual del usuario DMAN-ES-01/09/10

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Ejercicio 9 Introducción a la programación con Macros de Excel.

Comencemos a programar con. Entrega 09

TEMA: MANEJO DE TABLAS DINAMICAS EN MICROSOFT EXCEL 2013.

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Instalar el aplicativo con un usuario que sea administrador del sistema, e instalar para todos los usuarios.

MICROSOFT EXCEL 2007 (COMPLETO)

La Administración de Proyectos

Definiciones. Tema 21_Módulos Menú 1

APLICACIONES INFORMÁTICAS de BASE de DATOS

Temas de esta unidad :

HOJAS DE CÁLCULO CONTROLES, MACROS, VBA Y FORMULARIOS EN MS EXCEL. Excel 1

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

Índice. Insertar vínculos a páginas web... 8 Insertar videos... 9 Vínculos a archivos... 9

Fundamentos de la Programación

Microsoft Excel Nivel Avanzado Macros

por Elsa Matilde Meyer INDICE DE CONTENIDOS VERSIÓN DEMO

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013.

Elaborando WebQuest usando Power Point

Dirección General de Tecnologías de la Información y Comunicaciones. Dirección de Tecnología de la Información y Tecnologías

Tutorial para la creación de Bots de NTRadmin

Por qué ExecuTrain? Por qué ExecuTrain? Modalidad de servicio

Prerrequisitos El alumno debe conocer y dominar los aspectos básicos de programación.

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC)

Para ponerlo en funcionamiento deberemos realizar los siguientes pasos:

Formato condicional Herramientas para el manejo de datos Tablas (Listas) Subtotales Filtros Avanzados... 7

Sentencias o instrucciones en Visual BASIC

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Report Builder

FUNDAMENTOS DE INFORMÁTICA

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

SESIÓN 1: POWER POINT 2013

" ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2

Por qué usar VBA en Excel 2010?

Manual del Usuario de Microsoft Access Introducción - Página 1. I. Introducción. I.1. Base de Datos Relacional

Guía N 1: Fundamentos básicos(i)

MANUAL DE USUARIO CMS- PLONE

Introducción a Moodle

Manual de Usuario Sitio Web de la Red Federal de Capacitación

MICROSOFT EXCEL 2007

Operación Microsoft Access 97

Excel 2010 Representación gráfica de datos

Manejo de datos. Manejo de datos Diapositiva 1

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

Herramientas Tecnológicas de Productividad. Sesión 8. Hojas de cálculo

3.1. Guardar un libro de trabajo

Ejemplos de conversión de reales a enteros

Instrumentación Virtual con LabVIEW

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Transcripción:

Visual Basic for Applications en MS Excel 1

Las Macros en MS Excel. Para qué sirve una macro en Excel? Una macro nos ayuda a automatizar aquellas tareas que hacemos repetidamente. Una macro es una serie de instrucciones que son guardadas dentro de un archivo de Excel para poder ser ejecutadas cuando lo necesitemos. Las macros se escriben en un lenguaje de computadora especial que es conocido como Visual Basic for Applications (VBA). Este lenguaje permite acceder a prácticamente todas las funcionalidades de Excel y con ello también ampliar la funcionalidad del programa. 2

Visualizar la Ficha Programador en la Cinta de Opciones (1 de 2). Botón derecho en una zona en blanco de la cinta. 3

Visualizar la Ficha Programador en la Cinta de Opciones (2 de 2). 4

La Ficha programador y la Grabadora de Macros 5

Grabar y Ejecutar una Macro 6

Visualizar el Código de una Macro 7

Visualizar el Código de una Macro 8

Libro de Macros Personal C:\Usuarios\[Usuario]\AppData\Roaming\Microsoft\Excel\XLSTART 9

Libro de Macros Personal 10

Objetos, Propiedades y Métodos de VBA Cada elemento de Excel es representado en VBA como un objeto. Por ejemplo, existe el objeto Workbook que representa a un libro de Excel. También existe el objeto Sheet que representa una hoja y el objeto Chart para un gráfico. Cada uno de estos objetos tiene propiedades y métodos. Por ejemplo, el objeto Workbook tiene propiedades como ActiveSheet (Hoja activa), Name(Nombre), ReadOnly (Solo Lectura), Saved(Guardado) y algunos de sus métodos son Save (Guardar), Close (Cerrar), PrintOut (Imprimir), Protect (Proteger), Unprotect (Desproteger). 11

Objetos, Propiedades y Métodos de VBA 12

Objetos, Propiedades y Métodos de VBA Para acceder a las propiedades y métodos de un objeto lo hacemos a través de una nomenclatura especial. Justo después del nombre del objeto colocamos un punto seguido del nombre de la propiedad o del método. Observa este ejemplo donde hacemos uso de la propiedad Value para la celda A1: Range("A1").Value = "Hola" De esta manera asignamos una cadena de texto al valor de la celda A1. Ahora bien, si queremos borrar ese valor que acabamos de colocar en la celda podemos utilizar el método Clear de la siguiente manera: Range("A1").Clear Los objetos tienen muchas propiedades y métodos y a veces es difícil pensar que los llegaremos a memorizar todos por completo. Sin embargo, el Editor de Visual Basic es de gran ayuda porque justamente al momento de escribir nuestro código nos proporciona la lista completa de propiedades y métodos para un objeto. 13

Objetos, Propiedades y Métodos de VBA Para tener acceso a los objetos que están por debajo del objeto Application podemos utilizar el punto. El punto nos ayuda a navegar por la jerarquía hacia un nivel inferior. Observa lo que se muestra en el Editor de Visual Basic al colocar un punto después del objeto Application: Por ejemplo, si deseamos poner en negrita el texto de la celda A1 debemos llegar al objeto Range el cual nos dará acceso a modificar la propiedad Bold de la siguiente manera: 14

Objetos, Propiedades y Métodos de VBA Objetos predeterminados Existe una funcionalidad intrínseca de VBA conocida como objetos predeterminados la cual nos permite omitir la escritura de algunos objetos y aun así tener un código funcional. Por ejemplo, en la sentencia mostrada previamente podemos omitir el objeto Application y tener nuestro código funcionando correctamente: Inclusive podemos omitir los objetos ActiveWorkbook y ActiveSheet sabiendo que el código se ejecutará siempre sobre el libro activo y la hoja que esté activa al momento de la ejecución: 15

Objetos, Propiedades y Métodos de VBA 16

Eventos en VBA Algunos ejemplos de eventos en VBA son los siguientes: WorkbookOpen: El usuario abre un libro de Excel. WorkbookActivate: El usuario activa un libro de Excel. SelectionChange: El usuario cambia la selección de celdas en una hoja. Para descubrir los eventos que tiene un objeto es suficiente con abrir el Editor de Visual Basic y posteriormente el Examinador de objetos (F2). En el panel izquierdo se mostrarán los objetos y en el panel derecho las propiedades, métodos y eventos de dicho objeto. Podrás distinguir los eventos porque tienen un icono en forma de rayo (color amarillo): 17

Eventos en VBA 18

Editor VBA 19

Ejemplos VBA en Excel Cadenas de Texto 20

Ejemplos VBA en Excel Cadenas de Texto 21

Ejemplos VBA en Excel Cadenas de Texto 22

Ejemplos VBA en Excel Tabla de Multiplicar Sub TablaMultiplicar() Dim n, i As Integer Dim s As String Dim r As Range s = InputBox("Tabla de multiplicar del número: ", "Título") If s <> "" Then n = Val(s) ActiveSheet.Range("C2").Value = "Tabla de multiplicar del " & n Set r = ActiveSheet.Range("C4") For i = 0 To 10 r.offset(i, 0).Value = i r.offset(i, 1).Value = i * n Next i End If End Sub 23

Ejemplos VBA en Excel Tabla ASCII Sub Exercise() Dim Character As String Dim Number As Integer Number = 114 Character = Chr(Number) ActiveCell = "The ASCII character of " & Number & " is " & Character End Sub Sub Exercise() Dim Character As String Dim Number As Long Number = 358 Character = ChrW(Number) ActiveCell = "The ASCII character of " & Number & " is " & Character End Sub Sub Exercise() Dim Number As Integer Number = 28645 ActiveCell = Hex(Number) 24 End Sub

Ejemplos VBA en Excel Extraer números de una celda 25

Ejemplos VBA en Excel Extraer números de una celda Function EXTRAENUM(cadena As String) 'Variable numeros contendrá solo números de la cadena Dim numeros As String numeros = "" 'Recorrer la cadena For i = 1 To Len(cadena) 'Evaluar SI el carácter actual es un número If IsNumeric(Mid(cadena, i, 1)) Then End If Next 'Concatenar valor numérico a la variable numeros numeros = numeros & Mid(cadena, i, 1) 'Devolver los números encontrados EXTRAENUM = numeros End Function 26

Ejemplos VBA en Excel Operaciones con Colores en Excel Function OBTENERCOLOR(celda As Range) As Long OBTENERCOLOR = celda.interior.color End Function 27

Ejemplos VBA en Excel Operaciones con Colores en Excel Function SUMARPORCOLOR(celdaColor As Range, rango As Range) 'Variable resultado almacena la suma total Dim resultado Dim celda As Range For Each celda In rango 'Compara la propiedad Interior.Color If celda.interior.color = celdacolor.interior.color Then resultado = resultado + celda.value End If Next celda SUMARPORCOLOR = resultado End Function 28

Ejemplos VBA en Excel Operaciones con Colores en Excel Function CONTARPORCOLOR(celdaColor As Range, rango As Range) 'Variable resultado almacena la cuenta total Dim resultado Dim celda As Range For Each celda In rango 'Compara la propiedad Interior.Color If celda.interior.color = celdacolor.interior.color Then resultado = resultado + 1 End If Next celda CONTARPORCOLOR = resultado End Function 29

Ejemplos VBA en Excel Cómo crear hojas de Excel Worksheets.Add.Name = "Enero" Worksheets.Add (After:=Worksheets("Hoja2")).Name = "Febrero" Worksheets.Add (After:=Worksheets(Worksheets.Count)).Name = "Marzo" 30

Ejemplos VBA en Excel Macro para ordenar datos automáticamente en Excel clic derecho sobre el nombre de la hoja y seleccionar la opción Ver código Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Columns(1).Sort key1:=.cells(1, 1) End With End If End Sub 31

Ejemplos VBA en Excel Macro para ordenar datos automáticamente en Excel Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then With Range("A:B").Sort key1:=.cells(1, 2), Header:=xlYes End With End If End Sub 32

Ejemplos VBA en Excel Concatenar múltiples celdas =CONCATENAR(B2, "; ", B3, "; ", B4, "; ", B5, "; ", C2, "; ", C3, "; ", C4, "; ", D2, "; ", D3, "; ", D4, "; ", D5, "; ", E2, "; ", E3, "; ", E4) Function CONCATENARCELDAS(Rango As Range) 'Bucle para recorrer todas las celdas del rango For Each celda In Rango.Cells 'Si la celda NO está vacía, entonces concatenarla If celda.value <> "" Then resultado = resultado & "; " & celda.value End If Next celda 'Se remueve el ; y espacio inicial resultado = Right(resultado, Len(resultado) 2) CONCATENARCELDAS = resultado End Function 33

Ejemplos VBA en Excel Generar Valores Aleatorios sin Repetición =ALEATORIO.ENTRE( 50, 50) Function AleatoriosUnicos(Inferior As Integer, Superior As Integer, Cantidad As Integer) As String Dim iarr As Variant Dim i As Integer Dim r As Integer Dim temp As Integer Application.Volatile ReDim iarr(inferior To Superior) For i = Inferior To Superior iarr(i) = i Next i For i = Superior To Inferior + 1 Step 1 r = Int(Rnd() * (i Inferior + 1)) + Inferior temp = iarr(r) iarr(r) = iarr(i) iarr(i) = temp Next i For i = Inferior To Inferior + Cantidad 1 AleatoriosUnicos = AleatoriosUnicos & " " & iarr(i) Next i AleatoriosUnicos = Trim(AleatoriosUnicos) End Function Private Sub CommandButton1_Click() Range("B4").Value = AleatoriosUnicos(Range("B1").Value, Range("B2").Value, Range("B3").Value) End Sub 34

Private Sub CommandButton1_Click() Dim fila As Long Dim duplicados As Boolean Ejemplos VBA en Excel Formulario para completar una lista sin duplicados 'Obtener la fila disponible fila = Application.WorksheetFunction.CountA(Range("A:A")) + 1 duplicados = False 'Validar si se han ingresado datos duplicados For i = 1 To fila If Cells(i, 1).Value = UserForm1.TextBox1.Value Then If Cells(i, 2).Value = UserForm1.TextBox2.Value Then 'Se encontraron datos duplicados MsgBox "Datos duplicados en la fila " & i duplicados = True End If End If Next i UserForm1.Show If Not duplicados Then 'Insertar datos capturados Cells(fila, 1).Value = UserForm1.TextBox1.Value Cells(fila, 2).Value = UserForm1.TextBox2.Value 'Limpiar cajas de texto UserForm1.TextBox1.Value = "" UserForm1.TextBox2.Value = "" 'Notificar al usuario MsgBox "Datos insertados en la fila " & fila End If End Sub Unload Me 35

Ejemplos VBA en Excel Copiar valores únicos de un rango Sub ValoresUnicos() Dim listaorigen As Range On Error Resume Next Set listaorigen = Application.InputBox _ (Prompt:="Rango de datos origen:", Title:="Seleccionar rango", Type:=8) listaorigen.advancedfilter _ Action:=xlFilterCopy, CopyToRange:=ActiveCell, Unique:=True Canceled: End Sub 36

Ejemplos VBA en Excel Contar apariciones de un valor en un rango Function APARICIONES(rango As Range, valor As Variant) As Integer contador = 0 'Recorrer todas las celdas del rango For Each celda In rango.cells posicion = 1 nuevostr = celda.value 'Mientras la posición encontrada por InStr sea diferente a cero Do posicion = InStr(posicion, nuevostr, valor, vbtextcompare) If (posicion = 0) Then Exit Do Else 'Aumentar contador de apariciones contador = contador + 1 'Cadena de texto restante nuevostr = Mid(nuevoStr, posicion + Len(valor) + 1) End If Loop While posicion <> 0 Next APARICIONES = contador End Function 37

Sub ValorExiste() 'Definición de variables Dim rango As String Dim valor As String Dim resultado As Range Dim primerresultado As String Dim cont As Integer Ejemplos VBA en Excel Contar y marcar apariciones de un valor en un rango 'Solicitar información al usuario rango = InputBox("Ingresa el RANGO a buscar:") valor = InputBox("Ingresa el VALOR a buscar:") 'Inicializar contador de coincidencias cont = 0 'Primera búsqueda del valor dentro del rango Set resultado = Range(rango).Find(What:=valor, _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ SearchFormat:=False) 'Si el resultado de la búsqueda no es vacío If Not resultado Is Nothing Then primerresultado = resultado.address 'Inicia bucle para hacer varias búsquedas Do cont = cont + 1 'Cambia el color de fondo de la celda resultado.interior.colorindex = 6 'Vuelve a buscar el valor Set resultado = Range(rango).FindNext(resultado) Loop While Not resultado Is Nothing And _ resultado.address <> primerresultado End If 'Muestra un cuadro de diálogo con el número de coincidencias MsgBox "Se encontraron " & cont & " coincidencias." End Sub 38