Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCION:
VBA es una programacin que est ntimamente relacionada con los libros
y las hojas de clculo y para esto Excel cuenta con un editor de
programacin donde se pone el cdigo, a este se puede acceder, en Excel
2007, yendo a la pestaa programador y luego a la seccin cdigo donde
hacemos clic en Visual Basic
No tiene espacios y termina con "( )" . Para ejecutar este cdigo pulsamos
en el icono o en la tecla F5 para que aparezca el panel Macros
En los cdigos que hemos escrito tenemos los objetos Range("B5") ( celda
B5) con la propiedad de estar seleccionada y el objeto Range("D8") ( celda
D8) con la propiedad de tener un nmero (2007) y despues estar vaca.
Range("A1").Select
Activecell.FormulaR1C1="Pedro"
Range("A1").Value=" pedro"
3-Letra Negrita
Selection.Font.Bold = True
4-Letra Cursiva
Selection.Font.Italic = True
5-Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
6-Centrar Texto
With Selection
.HorizontalAlignment = xlCenter
End With
7-Alinear a la izquierda
With Selection
.HorizontalAlignment = xlLeft
End With
8-Alinear a la Derecha
With Selection
.HorizontalAlignment = xlRight
End With
9-Tipo de Letra(Fuente)
With Selection
End With
End With
11-Copiar
Selection.Copy
12-Pegar
ActiveSheet.Paste
13-Cortar
Selection.Cut
14-Ordenar Ascendente
15-Orden Descendente
16-Buscar
17-Insertar Fila
Selection.EntireRow.Insert
18-Eliminar Fila
Selection.EntireRow.Delete
19-Insertar Columna
Selection.EntireColumn.Insert
20-Eliminar Columna
Selection.EntireColumn.Delete
21-Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\Tablas dinamicas.xls"
22-Grabar un Libro
Estructuras de iteracion
Estos son:
INTRODUCCION:
4- Esta lnea es la condicin para entrar o salir del While y quiere decir
"mientras la celda activa no este vaca",
6- La primera lnea dentro del While hace bajar una posicin la celda
seleccionada, de esta forma podemos acceder a su contenido y la segunda
agrega este contenido a la variable "sum".
8- Una vez que salimos del ciclo colocamos el resultado queda en una
celda activa.
INTRODUCCION:
el programa VBA es
4- Esta lnea es la condicin para entrar o salir del While y quiere decir
"hacer mientras la celda activa no este vaca",
6- La primera lnea dentro del While hace bajar una posicin la celda
seleccionada, de esta forma podemos acceder a su contenido y la segunda
agrega este contenido a la variable "sum".
8- Una vez que salimos del ciclo colocamos el resultado queda en una
celda activa.
Sub SumaColumna()
Range("D1").Select
Sum = Range("D1")
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Sum = Sum + ActiveCell.Value
Loop
ActiveCell.Value = Sum
MsgBox Sum
End Sub
Finalmente una vez que aplicamos la macro, la hoja nos queda
INTRODUCCION:
el programa VBA es
Explicacin del cdigo (los nmeros representan las lneas de cdigo)
4- Esta lnea es la condicin para entrar o salir del While y quiere decir
"ejecutar el codigo hasta que la celda este vacia",
6- La primera lnea dentro del While hace bajar una posicin la celda
seleccionada, de esta forma podemos acceder a su contenido y la segunda
agrega este contenido a la variable "sum".
8- Una vez que salimos del ciclo colocamos el resultado que queda en una
celda activa.
INTRODUCCION:
8 y 9-Dentro del For la primera lnea hace bajar una posicin la celda
seleccionada, de esta forma podemos acceder a su contenido y la segunda
agrega este contenido a la variable "sum".
10-En esta lnea podemos salir o volver a entrar al For segn se haya
llegado a 10 o no.
Cdigo:
La parte ms importante del cdigo es
que significa: para cada celda del rango A1:D4 ejecutar el bloque
Sub PromedioRango()
End Sub
Este cdigo sirve para las dos regiones, siempre y cuando se seleccione
una celda de una u otra de acuerdo en cual se quiera calcular el promedio.
Por ejemplo si queremos calcular el promedio del rango de la zona de
contorno verde el resultado seria
En este caso hemos seleccionado la celda H3, pero se podra haber
seleccionado cualquier otra
en la que
Sub PromedioRegion()
End Sub
INTRODUCCION:
Introduccin
Tutoriales
Introduccin
Tutoriales
TUTORIALES (medio)
Generales
Funcines
Frmulas lgicas
Frmulas
Frmulas matriciales
Anidamiento de funcines
Filtros
Formato condicional
Tablas Dinmicas
Grficos
Macros
Programacin VBA
Funciones
INTRODUCCION:
Las funciones son un trozo de cdigo inserto en el programa principal que
recibe uno, muchos o ningn valor (parmetros o argumentos) y que a
diferencia de las subrutinas devuelven un nico valor, por esta razn se
debe especificar( aunque no es obligatorio)de qu tipo de dato es dicho
valor. Las funciones deben tener un nombre que las identifique y as poder
ser llamadas por el programa principal. Tambin nos permiten ampliar el
listado de las funciones que ya vienen por defecto en Excel, estas
funciones estn asociadas a un libro o una hoja de Excel y las
denominamos Funciones personalizadas, son muy tiles,entre otras cosas,
cuando la frmula que se requiere para resolver un problema usando las
funciones propias de las hojas Excel resulta muy larga y complicada,
haciendo casi imposible su comprensin.
Funciones personalizadas:
pero lo haremos con una funcin definida por nosotros programada con
VBA que llamaremos MULTIPLICA()
Esta funcin ya esta disponible junto con las dems,(solamente en la hoja
donde la definimos) como se puede ver en el recuadro rojo, tambin puede
verse que su definicin est entre Function y End Function
la usamos poniendo dos nmeros como argumento, tal como puede verse
Esto se puede resolver con la funcin SI, como se puede ver en la siguiente
figura
Resolveremos el mismo problema definiendo una funcin, que llamaremos
DESCUENTO, con el siguiente cdigo
Su cdigo es el siguiente:
usaremos la funcion recien definida en la siguiente tabla
En primer lugar podemos ver que se usan las funciones de librera de VBA
(funciones que ya estn definidas), ms precisamente las funciones de
cadena Len(), Asc() y Mid(). Una cadena es una serie de caracteres tratados
como una misma unidad, estos caracteres pueden ser letras, nmeros o
caracteres especiales, como pueden ser /, *, &, %, @ y otros muchos
incluido el espacio. A todos estos caracteres les corresponde un cdigo
numrico llamado ASCII . Estas funciones sirven para el manejo de
cadenas, hay otras que iremos analizando cuando sea necesario.
Funcin Len
Funcin Asc
5 strLong = Len(Texto)
7 For i = 1 To strLong
8 If Asc(Mid(Texto, i, 1)) >= 65 And Asc(Mid(Texto, i, 1)) <= 90 Then
9 textTemp = textTemp & Mid(Texto, i, 1)
9 End If
10 Next i
12 INICIALES = textTemp
14 End Function
Lnea 7: se entra en un ciclo for-Next que recorre el string Texto, o sea que
comienza desde 1 y termina en strLong.
Lnea 8: esta es la lnea ms importante. ya que en cada ciclo se evala
cada carcter y determina si es una letra mayscula (Asc>=65 o Asc<=90).
strLong = Len(Texto)
For i = 1 To strLong
If Asc(Mid(Texto, i, 1)) >= 65 And Asc(Mid(Texto, i, 1)) <= 90 Then
textTemp = textTemp & Mid(Texto, i, 1)
End If
Next i
INICIALES = textTemp
End Function
Alternativamente:
WorkSheetFunction.VLookup() o Function.VLookup()
Como se puede ver los parmetros de la funcin son los mismos que los de
las funciones nativas
y queremos:
NrFila = Application.WorksheetFunction.Match(valor_a_buscar,
matriz_de_busqueda.Resize( , 1), ValorExacto)
BUSCARVIZQ = matriz_de_busqueda(NrFila, 1).Offset(0, indice_de_Col)
End Function
NrFila = Application.WorksheetFunction.Match(valor_a_buscar,
matriz_de_busqueda.Resize( , 1), ValorExacto)
matriz_de_busqueda.Resize( , 1)
Selection.Resize(12,4).Select
finalmente el cdigo
BUSCARVIZQ = matriz_de_busqueda(NrFila, 1).Offset(0, indice_de_Col)
por ejemplo:
ActiveCell.Offset(-5,2).Select
selecciona la celda que se encuentra 5 filas hacia arriba y 2 columnas a la
derecha de la celda activa.
de otra manera:
Sheets(1).Range("C2").Offset(2,4).Select
a partir de C2 selecciona 2 filas hacia abajo y 4 columnas a la derecha, es
decir C2 pasa a ser G4(C2 = G4), tener en cuenta que 2 es fila y 4
columna.
La programacin VBA tiene sus propias funciones como Mid y Len, que ya
se describieron, estas permiten trabajar con cadenas de caracteres, con
nmeros, fechas, horas, mostrar mensajes por pantalla y muchas otras
que podemos listar por categoras, como sigue:
6-Funciones de Interaccin(Interaction)
Macros
INTRODUCCION:
Las macros son pequeos trozos de cdigo VBA que no deberan tener ms
de 15 lneas y no devuelven un valor en su nombre, como las funciones,
sino que hacen tareas especificas, estas tareas muchas veces pueden
realizase manualmente y otras no, en definitiva sirven para automatizar
Excel. Las macros pueden vincularse entre s mediante la palabra
recervada Call y de esta forma unirse para formar cdigos mas grandes
Un banco quiere dar de baja las cuentas que no tuvieron movimientos por
3 o ms aos, considerndolas inactivas en dicho caso y activas en caso
contrario.
El banco tiene un listado con las cuentas activas y no activas
Sub ActualizarListado()
Range("E3").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = "inactiva" Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Range("A1").Select
End Sub
Option Explicit
Sub ActualizarListado2()
Dim i As Integer
Dim k As Integer
k=1
Dim j As Integer
j=1
Call CopiaRotulo
Sheets("Hoja1").Select
Application.CutCopyMode = False
Range("E3").Select
j=j+1
Range("A1").Select
Sheets("Hoja1").Select
Selection.EntireRow.Delete
Else
k=k+1
ActiveCell.Offset(1, 0).Select
End If
Loop
Range("A1").Select
End Sub
Option Explicit
Sub CopiaRotulo()
Range("C2:E2").Select
Selection.Copy
Sheets("Bajas").Select
Range("C2").Select
ActiveSheet.Paste
Columns("C:C").EntireColumn.AutoFit
Columns("D:D").EntireColumn.AutoFit
Columns("E:E").EntireColumn.AutoFit
End Sub
Nos podramos preguntar de donde se sac la tabla que uso Cacho, bueno,
esta es realidad una base de datos de la cual se ha obtenido la que tiene el
rtulo ESTADO (cuenta activa, cuenta inactiva). La BASE DE DATOS se
obtiene de los FORMULARIOS que tenemos que llenar cuando decidimos
sacar una cuenta corriente en un banco
Este es un modelo real de formulario para la solicitud de una cuenta
bancaria de una empresa
Ahora lo que nos resta hacer es programar todos los botones, que como
puede verse no nos hemos privado a la hora de ponerlos, la razn es que
este directorio se puede adaptar para llenar y mantener una base de datos.
Debemos notar que solo hemos usado tres controles.
Para que los botones funcionen hay que hacer Click en ellos, entonces
debeos programar el evento Click y para hacerlo hay dos maneras: hacer
doble click en el objeto "cmdInsertar" o pulsar en este mismo objeto, con el
botn derecho del mouse para que aparezca men en el que apretamos la
tecla ver cdigo
en ambos casos vamos a la siguiente pantalla
Una de las tantas veces que fui a una librera, me encontr con una
computadora en la que se podan consultar, entre otras cosas, los libros
que haba en existencia, de un determinado autor. No s cmo lo habrn
hecho pero ahora lo vamos a hacer con las macros de Excel en una suerte
de interaccin usuario computadora.
"AUTORES" es la hoja donde se debera poner una base de datos con todos
los autores sus respectivos libros y el precio de cada uno. Dije se debera
colocar una base de datos yo me voy a conformar colocando una tabla con
algunos autores de ciencia ficcin, genero que, por cierto, me gusta mucho
TABLA 1
no son muchos datos pero servirn
AUTOR es la pgina donde va a ir una tabla solo con los datos del autor
consultado. Por ejemplo si se pregunta por Ray Bradbury la tabla debera
ser
TABLA 2
TABLA 3
Lo que ve al usuario despus de apretar el BOTON DE CONSULTA es
una pantalla que le pide que introduzca un autor
Lo que nos resta es decir cul es el cdigo de las macros que van en los
mdulos
mdulo1
mdulo2
mdulo3
Como se puede ver, esta no es una macro aislada sino una aplicacin
completa con cierto aspecto profesional, que por cierto, puede mejorarse
TICKET DE COMPRA
Celda B12:
Celda D12:
AGREGAR VEHICULOS
Debo aclarar que las fotos de los autos se deben colocar en este caso en
una carpeta junto con el archivo de la aplicacin, esto no sera necesario si
ponemos la ruta completa donde se encuentra la carpeta con los vehculos
siendo muy sencilla la modificacin del cdigo.
para suerte del cliente hay 2 SEDANES disponibles, uno gris y otro rojo.
Podamos haber incluido en la pantalla el modelo, que es una informacin
que podra Interesar. Si apareciera la pantalla en blanco significa que no
hay ningn SEDAN en la agencia, aunque sera mas prolijo que apareciera
la leyenda " EL MODELO SOLICITADO NO ESTA DOSPONIBLE" o " LA
AGENCIA NO DIPONE DE ESE MODELO" o mejor an " LO SENTIMOS,
EN LA AGENCIA NO HAY UN MODELO SEDAN", nos decidimos por esta
ltima leyenda. Hacer esto es muy simple, solo hay que modificar un poco
el cdigo que ya existente.