Sub Vencimiento()
Dim nFila As Double
Dim rCelda As Range
Dim sVencimiento As String
Dim n As Double
Dim sFactVence As String
Dim bFactVencidas As Boolean
'Contamos Filas
bFactVencidas = False
nFila = Worksheets("FINAL").Range("A" & Rows.Count).End(xlUp).Row
'Revisamos la fecha de vencimiento
'si está vencida o si vence a 1,2, 3, 4 o mas meses
For Each rCelda In Worksheets("FINAL").Range("D2:D" & nFila)
Select Case (rCelda.Value - Date)
Case Is >= 120
sVencimiento = "Mayor a 4 Meses"
Case Is >= 90
sVencimiento = "4 Meses"
Case Is >= 60
sVencimiento = "3 Meses"
Case Is >= 30
sVencimiento = "2 Meses"
Case Is > 0
sVencimiento = "1 Mes"
Case Else
sVencimiento = "Vencida"
End Select
rCelda.Offset(0, 11).Value = sVencimiento
Next
'Revisamos si paso de vencimiento
For Each rCelda In Worksheets("FINAL").Range("O2:O" & nFila)
If rCelda.Value <> "Vencida" Then
sFactVence = sFactVence & "--- " & Chr(10) & _
"VENCIMIENTO EN : " & rCelda.Value & Chr(10) & _
"CAMPO1: " & rCelda.Offset(0, -13).Value & Chr(10) & _
"CAMPO2: " & rCelda.Offset(0, -12).Value & Chr(10) & _
"CAMPO3: " & rCelda.Offset(0, -11).Value & Chr(10) & _
"--- " & Chr(10) & Chr(10)
'rCelda.Value = "SI"
bFactVencidas = True
End If
Next
'enviamos el correo
If bFactVencidas = True Then
Call Enviar_Correo(sFactVence)
End If
End Sub
Sub Enviar_Correo(ByVal sFacturas As String)
Set fase1 = CreateObject("outlook.application")
Set fase2 = fase1.CreateItem(olMailItem)
fase2.To = "midir@email.com"
fase2.Subject = "Informes "
fase2.Body = "Informes " & Chr(10) & _
"_________ " & Chr(10) & Chr(10) & sFacturas
'fase2.Attachments.Add ActiveWorkbook.FullName
fase2.Send
Set correo1 = Nothing
Set correo2 = Nothing
End Sub
una web muy util para realizar este tipo de macros -> http://www.rondebruin.nl/win/section1.htm
Hola, cuál es el formato en excel? es decir, los nombres de las columnas.
ResponderEliminarNombre de hoja "FINAL”, Pero retocando el código puedes hacer lo que quieras. Las columnas que uso son D2: hasta el final y O2: hasta el final.
EliminarEspero haberte ayudado,
Este comentario ha sido eliminado por el autor.
ResponderEliminarSi quiero enviarlo a varios emails, ¿los pongo separados por comas y entrecomillados de forma individual? ¿o los pongo entre las mismas comillas separados por comas?
ResponderEliminar