Excel - Editar macros (fecha)

 
Vista:
sin imagen de perfil

Editar macros (fecha)

Publicado por Ikarus (2 intervenciones) el 26/09/2016 23:11:02
Hola que tal buen dia, soy nuevo en este foro y relativamente nuevo en cuestiones de programar con macros, lo que pasa que tengo una macro que me avisa al cumplir una condicion en relacion a la fecha de "hoy", lo que hace es que me avisa cuantos dias han pasado desde "hoy" a la fecha que tengo en mi celda (fecha anterior "vencida"), pero ahora quiero modificar que la condicion sea que evalue las celdas de la columna "H" y si alguna esta a menos de cinco dias de "hoy", sea las lineas que me envie por email.
gracias, espero alguien me pueda echar la mano se los agradecere

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub reportaCalibraciones()
' procedimiento para reportar equipos/codigos que excedan dias-fecha enviando un correo-E ' _
    Dim fila As Long, venc As Byte, msj As String
  For fila = 4 To Range("h" & Rows.Count).End(xlUp).Row
    If Val(Range("h" & fila)) = 0 Then GoTo siguiente
     venc = Evaluate("index({0,1,20,30,50},match(today()-h" & fila & ",{-700,1,20,30,50}))")
    If venc > 0 Then
      msj = msj & vbCr & Range("a" & fila) & ">    " & Range("b" & fila) & ">                     " & Range("h" & fila) & ">            " & venc
    End If
siguiente:
  Next
  If msj = "" Then MsgBox "Sin calibraciones por reportar !": Exit Sub
  With CreateObject("outlook.application").CreateItem(0)
    .To = "ikarus_tovar@hotmail.com"
    .Subject = "Relacion de calibraciones pendientes"
    .Body = "CODIGO >      DESCRIPCION >            VENCIO EN >          DIAS VENCIDOS>" & msj
    .display
    .Send
  End With
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Editar macros (fecha)

Publicado por Ikarus (2 intervenciones) el 29/09/2016 20:27:53
Ya pude encontrar una solucion a mi problema por si alguien le interesa lo resolvi de esta manera....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub reportaCalibraciones()
Dim Fecha1 As String
Dim Fecha2 As String
' procedimiento para reportar equipos/codigos que excedan dias-fecha enviando un correo-E ' _
 
Dim fila As Long, msj As String
For fila = 3 To Range("h" & Rows.Count).End(xlUp).Row
Fecha1 = Range("h" & fila).Value
Fecha2 = Range("E1").Value
If Fecha1 = Fecha2 Then
msj = msj & vbCr & Range("a" & fila) & "> " & Range("b" & fila) & "> " & Range("h" & fila) & ">" & Range("k" & fila) & "> " & venc
End If
siguiente:
Next
If msj = "" Then MsgBox "Sin calibraciones por reportar !": Exit Sub
With CreateObject("outlook.application").CreateItem(0)
.To = "xxxxxx@xxxxxxxxxxx.mx; xxxxxx@xxxxxxx"
.Subject = "Relacion de calibraciones pendientes"
.Body = "CODIGO > DESCRIPCION > VENCE EN > IMPACTO>" & msj
.display
.Send
End With
End Sub

en la fecha2 E1 dentro de mi hoja de excel puse la fecha de hoy()+5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar