Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Forma 2:
Debido a que Excel solo nos permite crear una macro con el
nombre Auto_Open, esta segunda forma, tal vez la ms ortodoxa de hacerlo,
nos permite adems crear varias subrutinas (si se considera necesario) y
ejecutarlas al iniciar el libro. Esto si no buscramos algo tan simple como
desproteger una hoja al abrir un libro.
Consiste en entrar a ThisWorkbook y desde ah seleccionar las
opciones Workbook y Open, tal como se puede ver:
Para este ejemplo desprotegeremos 3 hojas simultneamente, para esto
deberemos utilizar el siguiente cdigo en un mdulo nuevo.
Sub DesprotegerHojas()
Worksheets(1).Unprotect
Worksheets(2).Unprotect
Worksheets(3).Unprotect
End Sub
Finalmente, podemos llamar a la macro deseada (que se puede encontrar
en cualquier mdulo dentro del proyecto) o pegarla en la subrutina que
abrimos inicialmente en ThisWorkbook. Como en este ejemplo hemos llamado
a nuestra subrutina DesprotegerHojas, colocamos el nombre de la macro
dentro del PrivateSub. As desprotegeremos las hojas en la posicin 1,2 y 3
automticamente al abrir el archivo.
Para fecha
LONG DATE: Permite obtener la fecha en formato escrito totalmente
completo. (sbado, 27 de enero de 2001)
MEDIUM DATE: Permite obtener la fecha en formato completo (27-ene-01)
D : Permite obtener el nmero del da (27)
SHORT DATE fecha en formato corto (27/01/2001)
LONG TIME: permite obtener la hora actual en formato largo completo
(17:04:23)
SHORT TIME: hora en formato completo(17:04)
Para ver el ejemplo, hacer clic en el siguiente enlace. FUNCION FORMAT-
DATE
Ejemplo: Msgbox(prompt,buttons,title)
Para ver el ejemplo, hacer clic en el siguiente enlace. FUNCION MSGBOX
Ejemplo
Si deseamos que se muestre una ventana de dialogo 10 veces y en cada
una mostraremos el valor actual de la variable i que comenzara con 1 t
terminara con 5.
Para ver el ejemplo, hacer clic en el siguiente enlace. FUNCION FOR NEXT
EJEMPLO
Si tenemos la siguiente lista de notas y deseamos redondearla con macros,
utilizaremos la funcin Round
Para ver el ejemplo, hacer clic en el siguiente enlace. FUNCION ROUND
EJEMPLO
Dim i As Integer
Dim s As Integer
Dim contador
Range(B4).Select
Application.ScreenUpdating = False
s=1
contador = 0
For aumento = 0 To 11
contador = contador + 1
ao = Year(fecha)
mes = Month(fecha)
j=1
p = inicio
For x = 1 To fin
ActiveCell.Offset(j 1, p 1) = x
ActiveCell.Offset(-1, 0).Value = Do
ActiveCell.Offset(-1, 1).Value = Lu
ActiveCell.Offset(-1, 2).Value = Ma
ActiveCell.Offset(-1, 3).Value = Mi
ActiveCell.Offset(-1, 4).Value = Ju
ActiveCell.Offset(-1, 5).Value = Vi
ActiveCell.Offset(-1, 6).Value = S
If p = 7 Then
p=0
j=j+1
End If
p=p+1
Next
ActiveCell.Offset(0, 9).Select
ActiveCell.Offset(9, -27).Select
End If
Next
Application.ScreenUpdating = True
End Sub
Al hacer click izquierdo en el Boton mencionado nos muestra una venta en
el que digitaremos la fecha con el siguiente formato dd/mm/aaaa y luego
pulsamos en aceptar para que nos genere el calendario.
Sub Macros()
Application.ThisWorkbook.Worksheets(1).Range(A1).Value = 29
End Sub
Constantes en VBA
18/10/2016 byAnthonyChuTejada | 0 comments
Declaracin de constantes
Sub Procedimiento()
Const TasaInteres As Single = 0.18
Dim Prestamo1 As Long, Prestamo3 As Long
Dim Interes1 As Long, Interes3 As Long
Prestamo1 = 1000
Prestamo2 = 3500
Prestamo3 = 5000
End Sub
Objetos
En el uso del VBA, nosotros podemos hacer dos cosas con las propiedades
de los objetos: la primera es examinar la configuracin de la propiedad,
mientras que la segunda es cambiar esta configuracin.
Por ejemplo, las celdas tienen una propiedad llamada valor, la cual es el
contenido que tiene cada celda. Nosotros podemos escribir un cdigo VBA
para mostrar el valor especfico de cada celda, esto se podra hacer de la
siguiente manera:
Sub mostrarvalor()
contenido= Worksheets(Hoja1).Range(A1).Value
MsgBox contenido
End Sub
Por otro lado, suponiendo que quieres cambiar la opcin o valor de esa
propiedad de la celda puedes aplicar tambin otra macro, ejemplo:
Sub cambiarvalor()
Worksheets(Hoja1).Range(A1).Value = 94.21
End Sub
Sub contarlibros()
MsgBox Workbooks.Count
End Sub
Mtodos
Sub borrarrango()
Range(A1).ClearContents
End Sub
Sub copiar()
End Sub
Sub nuevolibro()
Workbooks.Add
End Sub
donde escribir o colocar las macros?
07/02/2015 byBRIAN | 0 comments
Los procedimientos o funciones en el editor VBA se pueden escribir en
distintos lugares localizados en la ventana explorador de proyectos( en
hojas, mdulos y formularios)
Propiedades de WorksheetFuncion
Sub mini()
End Sub
Qu es WORKSHEETFUNCTION ?
01/11/2014 byRoberto | 0 comments
Propiedades de WorksheetFuncion
Sub mini()
Ejemplos de WorksheetFuncion
1. Funcin DIAS.LAB
2. Funcin WorksheetFunction.IsText
3. WorksheetFunction.Median
4. Funcin WorksheetFunction.Roman
5. WorksheetFunction.CountA
6. Funcin WorksheetFunction.IsLogical
7. Funcin WorksheetFunction.SumProduct
8. Funcin WorksheetFunction.IsOdd
9. Funcin WorksheetFunction.And
10. Funcin Worksheet.IsNumber
11. Funcin WorksheetFunction.Sum
12. Funcin WorksheetFunction.Or
13. Funcin WorksheetFunction.Fact
14. WORKSHEETFUNCTION.MAX para el promedio de notas
15. Funcin WorksheetFunction.Average
16. Uso de WorksheetFunction.CountBlank
17. Uso de WorksheetFunction.CountA
18. Uso de WorksheetFunction.RandBetween
19. Uso de WorksheetFunction.Vlookup
Funcin DIAS.LAB
12/06/2015 byMARCOANTONIO | 0 comments
Funcin DIAS.LAB
Esta funcin devuelve el nmero total de das laborales entre dos fechas
determinadas, con la posibilidad de sealar los das vacacionales o festivos
a fin de que no se consideren en el conteo final.
Para esto primero se debe registrar las fechas de inicio y fin del proyecto, y
los das festivos como se muestra a continuacin:
Fecha final: segundo campo obligatorio y marca el fin del periodo de tiempo
que se contabiliza.
Una vez que son ingresados los campos solicitados, la funcin calcula la
cantidad de das laborales que dur el proyecto, sin considerar los das
festivos.
Funcin DIAS.LAB con Macros
Realizar este proceso a travs de una macro resulta muy til si se trabaja
contantemente con proyectos, en las oficinas de recursos humanos para
calcular los das laborados por el personal o en cualquier otra situacin que
requiera el conteo de los das laborales entre dos fechas determinadas.
Para programar una macro con la cual se pueda calcular la cantidad de das
laborales entre dos fechas, se puede usar la siguiente estructura para el
cdigo obtenida con el grabador de macros
Sub Dias_laborados()
Macro1 Macro
Range(F4).Select
ActiveCell.FormulaR1C1 = =NETWORKDAYS(RC[-3],R[1]C[-3],R[2]C[-
3]:R[10]C[-3])
End Sub
De forma alternativa se puede emplear la
funcin WorksheetFunction.NetworkDays para acceder a usar la
funcin Funcin DIAS.LAB en Excel.
Sub dias_laborados()
End Sub
Estos cdigos permiten realizar el mismo clculo del ejemplo sin macros,
pero con la ventaja de que la ejecucin se realiza de forma casi automtica
y se pueden
Funcin WorksheetFunction.IsText
20/02/2015 byCARLOSANDRE | 6 Comments
Ejemplo:
Segn la ley de Reilly, el rea de Mercado es la distancia mxima que una
persona se trasladara para comprar. La frmula para el rea de Mercado de la ciudad
pequea ( menor poblacin) hacia otra grande ( mayor poblacin) ciudades es la
siguiente:
El Macros es el siguiente:
Sub proceso2()
Dim Rango1 As Object
Dim Rango2 As Object
distrito1 = Worksheets(Clculo del rea de mercado).Range(c5).Value
distrito2 = Worksheets(Clculo del rea de mercado).Range(d5).Value
Set Rango1 = Worksheets(reas de Mercado).Range(A1:AA1)
Set Rango2 = Worksheets(reas de Mercado).Range(A1:AA26)
If WorksheetFunction.IsText(distrito1) And
WorksheetFunction.IsText(distrito2) Then
concatenar = WorksheetFunction.Match(distrito2, Rango1, 0)
AreaDeMercado = WorksheetFunction.VLookup(distrito1, Rango2,
concatenar, False)
MsgBox El rea de Mercado de & distrito1 & se extiende &
AreaDeMercado & kilmetros & hacia & distrito2
Else
MsgBox Usted ingres un nmero
End If
End Sub
WorksheetFunction.Median
19/02/2015 byRICARDOJOS | 3 Comments
m = WorksheetFunction.Median(Range(A2:A12))
n = WorksheetFunction.Median(Range(B2:B12))
Case n < m
Case n > m
Case n = m
End Select
End Sub
Este programa describe las comparaciones entre las ventas de 2 meses
cualesquiera. Para eso, se procede a calcular las medias de los valores con
la funcin worksheetFunction.Median y otorgndole nombre a las
variables a comparar siendo n y m las medias de los valores evaluados.
Posteriormente, mediante la herramienta select case se proceder a
realizar las respectivas comparaciones y dependiendo de estas aparecer
un mensaje sobre si las aumentas han aumentado, disminuido o son iguales
en promedio.
Funcion worksheetfunction.median
Funcin WorksheetFunction.Roman
14/02/2015 byMARAALEJANDRA | 1 Comment
Ejemplo: Application.WorksheetFunction.Roman
Ejemplo:
Sub Ejemplo()
Arabigo = Worksheets(Hoja1).Range(D4)
Romano = Application.WorksheetFunction.Roman(Arabigo)
Range(E4) = Romano
End Sub
WorksheetFunction.CountA
02/11/2014 byAlessandraVanessa | 3 Comments
WorksheetFunction.CountA( Arg1,Arg2)
* NOTA:
Ejemplos:
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
MsgBox lngUltimaCelda
End If
Sub ContarCeldas()
Dim n As Integer
n = Application.WorksheetFunction.CountA(Selection)
End Sub
Funcin WorksheetFunction.IsLogical
01/11/2014 byFernandoDaniel | 1 Comment
Esta funcin multiplica cada uno de los componentes de las matrices con su
semejante en la otra matriz, y devuelve la suma de esos productos. Para
ello, las matrices deben tener las mismas dimensiones, es decir, todas las
matrices deben tener el mismo nmero de filas y de columnas. Esto se
ilustra mejor en el siguiente ejemplo:
funcin sumaproducto
Descripcin:
EntornoVBA:
Sub Jorge()
JM = Worksheets(Hoja1).Range(C4).Value
Worksheets(Hoja1).Range(C7).Value = WorksheetFunction.IsOdd(JM)
End Sub
Funcin WorksheetFunction.And
01/11/2014 bySergioArturo | 1 Comment
Funcin WorksheetFunction.And
Application.WorksheetFunction
Application.WorksheetFunction.And
Funcin Worksheet.IsNumber
01/11/2014 byLeidy | 0 comments
Funcin WorksheetFunction.Sum
01/11/2014 byCarlosAlfredoJulian | 3 Comments
Funcin WorksheetFunction.Sum
La Funcin WorksheetFunction.Sum nos permite obtener el resultado de la
suma de los argumentos ingresados a la funcin, esta funcin devuelve el
resultado el cual es del tipo DOUBLE. Los tipos de argumentos que acepta
esta funcin son del tipo numrico, bolean (verdadero, falso) donde
VERDADERO tendr el valor de 1 y FALSO el valor de 0. Adems, la
funcin WorksheetFunction.Sum en VBA solo acepta 30 argumentos como
mximo y un argumento como mnimo.
Sintaxis:
Ejemplo 1
Cabe resaltar, que como bien se sabe, las funciones del tipo
WorksheetFunction no son propias de VBA, ser necesario emplear la forma:
application.WorksheetFunction para poder hacerlas compatibles con este
lenguaje.
Ejemplo 1
Esta imagen desarrolla un ejemplo basico debido a que solo desarrolla una
operacion simple de factorial con comandos programados en Visual Basic.
Ejemplo 2
De manera que podemos utilizar el visual Basic para ingresar los nmeros y que estos sean calculados por Excel.
Ejemplo 3
Al igual que en el ejemplo anterior, la formula recreada en Visual Basic desarrollar una operacin
tambin compleja la cual nos pedir la informacin necesaria para poder desarrollar la pregunta.
End Sub
UserForm1.Hide
End Sub
TextBox1 =
End Sub
El valor resultante es el consumo promedio de los clientes del local durante un da.
Uso de WorksheetFunction.CountBlank
07/07/2013 byFernandoSantos | 6 Comments
WorksheetFunction.CountA( Arg1,Arg2)
* NOTA:
Ejemplos:
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
MsgBox lngUltimaCelda
End If
Dim n As Integer
n = Application.WorksheetFunction.CountA(Selection)
End Sub
Uso de WorksheetFunction.RandBetween
04/02/2013 byFernandoSantos | 7 Comments
Descripcin
Sintaxis
Para generar un valor aleatorio entre -2 y 2 (por ejemplo) se usa la
siguiente sintaxis:
=Aleatorio.Entre(-2,2)
Entorno VBA
Sub getrandnumber()
inferior = InputBox(Inserte limite inferior)
superior = InputBox(Inserte limite superior)
ActiveCell.Value = WorksheetFunction.RandBetween(inferior, superior)
MsgBox (El elegido es el numero: & ActiveCell.Value)
End Sub
Uso de WorksheetFunction.RandBetween
04/02/2013 byFernandoSantos | 7 Comments
Descripcin
Esta funcin que al espaol se traduce como Aleatorio.Entre tiene como objetivo el
generar valores aleatorios usando un rango definido por el usuario, en esto se
diferencia de la funcin Aleatorio que usa limites dados por default (entre 0 y 1).
Cabe resaltar que solo genera valores enteros.
Sintaxis
Para generar un valor aleatorio entre -2 y 2 (por ejemplo) se usa la siguiente sintaxis:
=Aleatorio.Entre(-2,2)
Entorno VBA
Para generar una macro conteniendo esta funcion podemos usar el siguiente codigo
que genera el valor aleatorio en la celda seleccionada, en particular encontre bastante
util esta funcion por ejemplo para asignar una tarea a una persona de entre un grupo.
Sub getrandnumber()
inferior = InputBox(Inserte limite inferior)
superior = InputBox(Inserte limite superior)
ActiveCell.Value = WorksheetFunction.RandBetween(inferior, superior)
MsgBox (El elegido es el numero: & ActiveCell.Value)
End Sub
Uso de WorksheetFunction.Vlookup
10/11/2012 byFernandoSantos | 9 Comments
Por ejemplo:
Por ejemplo, en esta base muestra diferentes cdigos de corredores de
seguros, su nombre y el producto que venden.
Sintaxis:
Habilitar Macros
Funcin ISERROR
18/02/2015 byFernandoSantos | 6 Comments
Funcin ISERROR
Es una funcin de VBA que nos indica si la variable contiene un valor de
error (#N/A, #VALOR! , #REF! , #DIV/0!, #NUM!, #NOMBRE?,
#NULO! ) la funcin devuelve True, de lo contrario la funcin devuelve
False.
Tiposdeerrores:
#N/AEn tu frmula o funcin hay algn valor que no est.
#VALOR!Estas utilizando un operando o un argumento no valido,
por ejemplo texto en vez de nmeros.
#REF!Tu frmula se est refiriendo a una celda que no es vlida, por
ejemplo porque se elimino.
#DIV/0!Aparece cuando en una frmula estas dividiendo entre cero
o entre una celda vaca.
#NUM!Te indica que los valores numricos no son validos, es o bien
un nmero demasiado grande o demasiado pequeo y Excel no lo puede
representar.
#NOMBRE?El texto de la frmula que has introducido no es
reconocido por Excel.
#NULO!En tu frmula haces referencia a dos rangos que no tienen
interseccin entre ellos.
Sub validacion()
For i = 2 To 21
Cells(i, 5).Select
If IsError(ActiveCell) Then
Selection.Font.ColorIndex = 3
Else
If ActiveCell = CERTIFICADO Then
Selection.Font.ColorIndex = 10
Else
If ActiveCell = CONSTANCIA Then
Selection.Font.ColorIndex = 25
End If
End If
End If
Next
End Sub
Funcin FILEDATETIME
17/02/2015 byEMERSON | 11 Comments
Sub obtenerfecha()
Dim archivo As String
archivo = Range(A1)
fecha = filedatetime(archivo)
Range(A2) = fecha
End Sub
Suele suceder que al trabajar con una lista de datos, hay celdas que tienen
espacios al inicio y/o final de los valores o texto que contienen. Esto causa
dificultades, por ejemplo si se quiere buscar un valor utilizando VLOOKUPu
otras similares. A continuacin se presenta una Macro que facilitar el
trabajo de encontrar estos espacios extra y eliminarlos en las celdas
correspondientes.
Se utilizar como ejemplo una lista de canciones, como se ve los datos que
han sido ingresados tienen algunos espacios al inicio, final o ambos. Con la
siguiente macro se lograra eliminar esos espacios.
Paso 5. Una vez la celda est activa la macro se asegura de que la celda a
analizar no est vaca con la condicin de que si no est vaca se ejecute la
funcin Trimen esa celda.