¿Cómo hacer una macro que envíe correos en dos fechas escritas en excel?

En mi trabajo usamos una tabla que describe los problemas encontrados.

En una celda se escribe la fecha de registro

En otra la acción correctiva (si/no)

En otra la dirección email

En otra la fecha de inicio de la acción correctiva

Y en las siguientes se describe el problema encontrada

Se requiere que cuando la celda de acción correctiva diga "si", se envíen las celdas con la descripción del problema al correo dado en dos tiempos: al momento del registro del problema y en la fecha de inicio de la acción correctiva.

Espero me pueda ayudar un poco con la creación de la macro porque estoy muy perdida

1 respuesta

Respuesta
2

Para enviar el correo me puedes decir lo siguiente:

  • En qué columna está cada información
  • El envío es por outlook
  • Qué va en el asunto del correo
  • Qué lleva el cuerpo del correo, pon un ejemplo
  • Explícame con un ejemplo eso de los 2 tiempos
  • El envío lo quieres en automático o cuando presiones un botón. Si es en automático, debe ocurrir un evento en excel, es decir, puede ser al momento de abrir el archivo o también puede ser cuando captures la fecha (último dato que capturas del registro)

E spero tus comentarios en ese orden

1-

fecha de registro (A3:A...)

correos email (T3:T...)

no conformidad(si/no) (R3:R...)

fecha de inicio (X3:X...)

2-En outlook

3-asunto= "aviso de no conformidad"

4- Por ejemplo

Hoy encontramos un problema en área de producción la información completa del problema esta en las celdas (A3:Z3)

Al responsable se le enviara la información de el problema (A3:Z3)

"buenos días

Le envío la información del problema encontrado para la realización de la acción correctiva en la fecha dada

Cordialmente

(Información de la tabla A3:Z3)"

5- El correo se enviara el día del registro del problema y en la fecha de inicio

fecha de registro: hoy (20/04/2017)

Acción correctiva: si

Correo del responsable: [email protected]

fecha de inicio: 22/04/2017

6- Los correos deben enviarse automaticamente en la fecha de registro y en la fecha de inicio al abrir en archivo

Importante:

Se maneja una tabla para varios problemas

El primer problema esta en A3:z3

El segundo A4:Z4

Y asi los demas ( por cada problema tendremos diferentes fechas y diferentes correos

queria mandar la tabla pero no se como

El siguiente problema se registra en (A4:Z4)

Te anexo la macro.

Me faltaron 2 detalles, el nombre de la hoja y en cuál fila empiezan los datos.

Cambia en la macro "registro" por el nombre de tu hoja y cambia el 3 por el número de fila donde empieza tus registros, en estas líneas:

    Set h = Sheets("registro")
    For i = 3 To h.Range("A" & Rows.Count).End(xlUp).Row

Pon la macro en los eventos de Thisworkbook

Private Sub Workbook_Open()
'Por.Dante Amor
    Set h = Sheets("registro")
    For i = 3 To h.Range("A" & Rows.Count).End(xlUp).Row
        If LCase(h.Cells(i, "R")) = "si" Then
            If h.Cells(i, "A") = Date Or h.Cells(i, "X") = Date Then
                cad = ""
                For j = 1 To Columns("Z").Column
                    cad = cad & h.Cells(i, j).Value & " "
                Next
                '
                Set dam = CreateObject("Outlook.Application").CreateItem(0)
                dam.To = h.Range("B" & i).Value           'Destinatarios
                dam.Subject = "Aviso de no conformidad"
                dam.Body = "Buenos días" & vbCr & _
                    "Le envío la información del problema encontrado " & _
                    "para la realización de la acción correctiva en la fecha dada" & vbCr & _
                    "Cordialmente" & vbCr & _
                    cad
                dam.Send                                'El correo se envía en automático
                'dam.Display                             'El correo se muestra
                Set dam = Nothing
            End If
        End If
    Next
    MsgBox "Correos enviados"
End Sub


Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

La macro se ejecutará en automático cuando abras el archivo.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Muchas gracias ya casi queda, esta perfecto

Solo una pequeña duda

Cuando llega el correo se junta toda la información de las celdas

Es posible enviarlo separado o cada información en su celda

¿Por ejemplo enviar los títulos de la tabla con la información del problema?

Si no se puede de todas formas le agradezco mucho

Sí es posible, tengo que crear un código en html, con mucho gusto te ayudo con todas tus peticiones, crea una nueva pregunta, en el desarrollo escribe para Dante Amor, ahí pones un ejemplo de como quieres el resultado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas