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