Primero hay que activar la "librería de objetos de Outlook". Ir a Tools/References y seleccionar Microsoft Office Outlook Object Library:
Luego de eso, hay que crear un objeto de outlook, en este caso un mail item. Este objeto tendrá sus métodos y propiedades:
Sub SendEmail()
Dim mlook As Outlook.MailItem
Set mlook = Outlook.Application.CreateItem(olMailItem)
mlook.To = "eljayan@gmail.com"
mlook.Subject = "test"
mlook.Send
End Sub
Páginas
martes, 27 de mayo de 2014
domingo, 25 de mayo de 2014
Gael Monfils bailando en Roland Garros 2014
"Turn Down for What" ante la atenta mirada del dj Bob Sinclar. Tambien se puede ver a Novak haciéndoles barra, me hubiera gustado verlo participar en esa batalla. Todos unos entertainers!
jueves, 22 de mayo de 2014
Esto hice hoy en la oficina, me merezco una galleta por lo menos!
Una función para excel que rastrea el proceso de customs clearance y cada dia va indicando si estamos al dia o atrasados en alguna tarea. Al final indica si se cumplió o no con el KPI.
Function KPI_TRACKING(Adu As Variant, arrival_date As Date, delivery_broker As Date, payment_request As Date, check_delivery_date As Date, submit_date As Date, warehouse_date As Date)
'despliega alertas para saber como va el proceso de clearance.
'comineza por verificar que se haya ingresado la fecha de llegada:
If arrival_date = 0 Then
KPI_TRACKING = "Enter arrival date."
Else
'luego se verifica que se haya ingresado la aduana de destino.
If Adu = 0 Then
KPI_TRACKING = "Enter ADU."
Else
'verifica si se ha entregado o no los documentos al broker
If delivery_broker = 0 Then
'si no se han entregado documentos hay que validar la aduana de destino .
'si es un tramite maritimo hay que entregar los documentos 12 dias antes de la llegada, de lo contrario estamos atrasados.
If Adu = "028" Then
If (arrival_date - Date) < 12 Then
KPI_TRACKING = "Delivery to broker is late"
Else
KPI_TRACKING = "On Schedule."
End If
'si la carga es aerea, hay que entregar la carga 7 dias antes del arribo, de lo contrario estamos atrasados.
Else
If (arrival_date - Date) < 7 Then
KPI_TRACKING = "Delivery to broker is late."
Else
KPI_TRACKING = "On Schedule."
End If
End If
'si el tramite ya fue entregado al agente lo primero que hay que hacer es verificar que nos hayan enviado la preliquidacion
Else
'si no nos han enviado la preliquidacion y faltan menos de 4 dias para el arribo, estamos tarde, de lo contrario estamos ok:
If payment_request = 0 Then
If arrival_date - Date < 4 Then
KPI_TRACKING = "Payment request is late."
Else
KPI_TRACKING = "On Schedule."
End If
'si ya nos enviaron la preliquidacion hay que verificar si ya salio el cheque:
'AQUI ME QUEDE--------------------
Else
'si el cheque no ha salido hay que ver si el cheque sale un dia antes de la fecha de arribo.
If check_delivery_date = 0 Then
If (arrival_date - 1) >= Date Then
KPI_TRACKING = "On Schedule."
Else
KPI_TRACKING = "Check is late."
End If
'si el cheque ya salió hay que verificar que si ya se hizo la declaracion de impuestos
Else
'si la declaracion no se ha hecho, hay que ver que se haga dentro de los 3 primeros dias de arribo
If submit_date = 0 Then
If (Date - arrival_date) > 3 Then
KPI_TRACKING = "Declaration is late."
Else
KPI_TRACKING = "On Schedule."
End If
Else
'si la declaracion ya se hizo hay que chequear si ya se entregó a bodega.
'si no se ha entregado a bodega:
If warehouse_date = 0 Then
'en caso de los embarques maritimos, CONFIRMAR SI EL KPI PARA MARITIMO ES 7
If Adu = "028" Then
If (Date - arrival_date) <= 7 Then
KPI_TRACKING = "On Schedule"
Else
KPI_TRACKING = "Delivery to Warehouse is late."
End If
'en caso de embarques aereos, CONFIRMAR SI EL KPI PARA AEREOS ES 6:
Else
If (Date - arrival_date) <= 6 Then
KPI_TRACKING = "On Schedule"
Else
KPI_TRACKING = "Delivery to Warehouse is late."
End If
End If
'y si ya se entregó a bodega.
Else
'En caso de los embarques maritimos
If Adu = "028" Then
If (warehouse_date - arrival_date) <= 7 Then
KPI_TRACKING = "KPI Succeeded."
Else
KPI_TRACKING = "KPI FAILED."
End If
'en caso de los embarques aereos
Else
If (warehouse_date - arrival_date) <= 6 Then
KPI_TRACKING = "KPI Succeeded."
Else
KPI_TRACKING = "KPI FAILED."
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Function
Function KPI_TRACKING(Adu As Variant, arrival_date As Date, delivery_broker As Date, payment_request As Date, check_delivery_date As Date, submit_date As Date, warehouse_date As Date)
'despliega alertas para saber como va el proceso de clearance.
'comineza por verificar que se haya ingresado la fecha de llegada:
If arrival_date = 0 Then
KPI_TRACKING = "Enter arrival date."
Else
'luego se verifica que se haya ingresado la aduana de destino.
If Adu = 0 Then
KPI_TRACKING = "Enter ADU."
Else
'verifica si se ha entregado o no los documentos al broker
If delivery_broker = 0 Then
'si no se han entregado documentos hay que validar la aduana de destino .
'si es un tramite maritimo hay que entregar los documentos 12 dias antes de la llegada, de lo contrario estamos atrasados.
If Adu = "028" Then
If (arrival_date - Date) < 12 Then
KPI_TRACKING = "Delivery to broker is late"
Else
KPI_TRACKING = "On Schedule."
End If
'si la carga es aerea, hay que entregar la carga 7 dias antes del arribo, de lo contrario estamos atrasados.
Else
If (arrival_date - Date) < 7 Then
KPI_TRACKING = "Delivery to broker is late."
Else
KPI_TRACKING = "On Schedule."
End If
End If
'si el tramite ya fue entregado al agente lo primero que hay que hacer es verificar que nos hayan enviado la preliquidacion
Else
'si no nos han enviado la preliquidacion y faltan menos de 4 dias para el arribo, estamos tarde, de lo contrario estamos ok:
If payment_request = 0 Then
If arrival_date - Date < 4 Then
KPI_TRACKING = "Payment request is late."
Else
KPI_TRACKING = "On Schedule."
End If
'si ya nos enviaron la preliquidacion hay que verificar si ya salio el cheque:
'AQUI ME QUEDE--------------------
Else
'si el cheque no ha salido hay que ver si el cheque sale un dia antes de la fecha de arribo.
If check_delivery_date = 0 Then
If (arrival_date - 1) >= Date Then
KPI_TRACKING = "On Schedule."
Else
KPI_TRACKING = "Check is late."
End If
'si el cheque ya salió hay que verificar que si ya se hizo la declaracion de impuestos
Else
'si la declaracion no se ha hecho, hay que ver que se haga dentro de los 3 primeros dias de arribo
If submit_date = 0 Then
If (Date - arrival_date) > 3 Then
KPI_TRACKING = "Declaration is late."
Else
KPI_TRACKING = "On Schedule."
End If
Else
'si la declaracion ya se hizo hay que chequear si ya se entregó a bodega.
'si no se ha entregado a bodega:
If warehouse_date = 0 Then
'en caso de los embarques maritimos, CONFIRMAR SI EL KPI PARA MARITIMO ES 7
If Adu = "028" Then
If (Date - arrival_date) <= 7 Then
KPI_TRACKING = "On Schedule"
Else
KPI_TRACKING = "Delivery to Warehouse is late."
End If
'en caso de embarques aereos, CONFIRMAR SI EL KPI PARA AEREOS ES 6:
Else
If (Date - arrival_date) <= 6 Then
KPI_TRACKING = "On Schedule"
Else
KPI_TRACKING = "Delivery to Warehouse is late."
End If
End If
'y si ya se entregó a bodega.
Else
'En caso de los embarques maritimos
If Adu = "028" Then
If (warehouse_date - arrival_date) <= 7 Then
KPI_TRACKING = "KPI Succeeded."
Else
KPI_TRACKING = "KPI FAILED."
End If
'en caso de los embarques aereos
Else
If (warehouse_date - arrival_date) <= 6 Then
KPI_TRACKING = "KPI Succeeded."
Else
KPI_TRACKING = "KPI FAILED."
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Function
miércoles, 21 de mayo de 2014
VBA Excel: Funcion para buscar un texto en todas las hojas de un Libro
Function newclient(clientID As String) As String
Dim count As Integer
For Each Worksheet In Worksheets
If Not Worksheet.UsedRange.Find(clientID, lookat:=xlWhole) Is Nothing Then
count = count + 1
MsgBox (count)
End If
Next Worksheet
If count > 1 Then
newclient = "Old client"
Else
newclient = "New client"
End If
End Function
martes, 20 de mayo de 2014
VBA Excel: Como agregar un item al menu de boton derecho.
Para agregarlo:
Sub addtoshortcut()
Dim bar As CommandBar
Dim newcontrol As CommandBarButton
deletefromshortcut
Set bar = Application.CommandBars("Cell")
Set newcontrol = bar.Controls.Add _
(Type:=msoControlButton, ID:=1, _
temporary:=True)
With newcontrol
.Caption = "&Container Count"
.OnAction = "containercount"
.Style = msoButtonIconAndCaption
End With
End Sub
Para dejarlo como estaba:
Sub deletefromshortcut()
On Error Resume Next
Application.CommandBars("Cell").Controls _
("$Container Count").Delete
End Sub
Sub addtoshortcut()
Dim bar As CommandBar
Dim newcontrol As CommandBarButton
deletefromshortcut
Set bar = Application.CommandBars("Cell")
Set newcontrol = bar.Controls.Add _
(Type:=msoControlButton, ID:=1, _
temporary:=True)
With newcontrol
.Caption = "&Container Count"
.OnAction = "containercount"
.Style = msoButtonIconAndCaption
End With
End Sub
Para dejarlo como estaba:
Sub deletefromshortcut()
On Error Resume Next
Application.CommandBars("Cell").Controls _
("$Container Count").Delete
End Sub
lunes, 12 de mayo de 2014
VBA Excel: Asignar funciones personalizadas a una categoría
Se debe crear una macro y ejecutarla una sola vez:
Sub add_category()
Application.MacroOptions macro:="calc_adval", Category:=1
Application.MacroOptions macro:="calc_fodinfa", Category:=1
Application.MacroOptions macro:="calc_vat", Category:=1
Application.MacroOptions macro:="calc_liquidation", Category:=1
End Sub
mis funciones cal_val, cal_fodinfa etc... fueron agregadas a la categoría 1 que es Finanzas.
El listado de las categorías donde se pueden colocar las funciones:
Sub add_category()
Application.MacroOptions macro:="calc_adval", Category:=1
Application.MacroOptions macro:="calc_fodinfa", Category:=1
Application.MacroOptions macro:="calc_vat", Category:=1
Application.MacroOptions macro:="calc_liquidation", Category:=1
End Sub
mis funciones cal_val, cal_fodinfa etc... fueron agregadas a la categoría 1 que es Finanzas.
El listado de las categorías donde se pueden colocar las funciones:
Integer
|
Category
|
1
|
Financial
|
2
|
Date & Time
|
3
|
Math & Trig
|
4
|
Statistical
|
5
|
Lookup & Reference
|
6
|
Database
|
7
|
Text
|
8
|
Logical
|
9
|
Information
|
10
|
Commands
|
11
|
Customizing
|
12
|
Macro Control
|
13
|
DDE/External
|
14
|
User Defined
|
15
|
First custom category
|
16
|
Second custom category
|
17
|
Third custom category
|
18
|
Fourth custom category
|
19
|
Fifth custom category
|
20
|
Sixth custom category
|
21
|
Seventh custom category
|
22
|
Eighth custom category
|
23
|
Ninth custom category
|
24
|
Tenth custom category
|
25
|
Eleventh custom category
|
26
|
Twelfth custom category
|
27
|
Thirteenth custom category
|
28
|
Fourteenth custom category
|
29
|
Fifteenth custom category
|
30
|
Sixteenth custom category
|
31
|
Seventeenth custom category
|
32
|
Eighteenth custom category
|
martes, 6 de mayo de 2014
VBA Excel: Como aplicar la funcion Networkdays() para encontrar el numero de dias habiles entre dos fechas
La calve para utilizar cualquier funcion de excel en VBA es:
Application.WorksheetFunction.[Nombre de la funcion]
El resto se llena con la sintaxis normal de cada funcion.
clearance_start = ThisWorkbook.Sheets("samples").Range("ab" & k).Value
clearance_finish = ThisWorkbook.Sheets("samples").Range("ba" & k).Value
clearance_days = Application.WorksheetFunction.NetworkDays(clearance_start, clearance_finish)
Application.WorksheetFunction.[Nombre de la funcion]
El resto se llena con la sintaxis normal de cada funcion.
clearance_start = ThisWorkbook.Sheets("samples").Range("ab" & k).Value
clearance_finish = ThisWorkbook.Sheets("samples").Range("ba" & k).Value
clearance_days = Application.WorksheetFunction.NetworkDays(clearance_start, clearance_finish)
Suscribirse a:
Entradas (Atom)