Enviar al correo información de una hoja de excel

Ejecutar un comando para enviar a determinado correo la información de una hoja de excel

1 respuesta

Respuesta
1

¿Necesitas mandar una hoja activa adjunta en el correo outlook?
La hoja se debe adjuntar lista para editar el subjet y for:
¿O se envíe en automático?

si... .. que la hoja de excel sea enviada al correo.

pero tengo un bucle que responde a varios correos

Haber si te ayuda unicamente con el siguiente código, que es lo que te interesa, si necesitas ya más detallado lo podríamos ver más tarde.

sub send_mail()'declaraciones de variablesDim NombreArchivo As StringDim RutaTemporal As StringDim Mensaje As StringDim Folio As StringDim Attach As String    Sheets("nombredehoja").Select    MsgBox "Estás a punto de enviar la hoja activa por email." & vbNewLine & _    "Tu numero de Folio Seguimiento es: " & vbNewLine & vbNewLine & Folio        NombreArchivo = ActiveSheet.Name    'el archivo se llamara como la hoja        RutaTemporal = Environ("temp") & "\" 'ruta temporal del sistema puedes usar c:\carpeta        NombreArchivo = RutaTemporal & NombreArchivo & ".xlsx"    Sheets(array("nombredehoja").Copy ' si quieres copiar mas de una hoja usas array ejemplo -Sheets(array("Carga", "Formulario", "etc")).Copy    Application.DisplayAlerts = False    ActiveWorkbook.SaveAs NombreArchivo    Application.DisplayAlerts = True    CommandBars.ExecuteMso ("FileSendAsAttachment") 'esta sentencia manda la copia de hojas a outlook    ActiveWorkbook.Close False        Kill NombreArchivo ' elimina el temporalEnd Sub
Sub send_mail()
'declaraciones de variables
Dim NombreArchivo As String
Dim RutaTemporal As String
Dim Mensaje As String
Dim Folio As String
Dim Attach As String
Sheets("nombredehoja").Select
MsgBox "Estás a punto de enviar la hoja activa por email." & vbNewLine & _
NombreArchivo = ActiveSheet.Name    'el archivo se llamara como la hoja
RutaTemporal = Environ("temp") & "\" 'ruta temporal del sistema puedes usar c:\carpeta
NombreArchivo = RutaTemporal & NombreArchivo & ".xlsx"
Sheets("nombredehoja").Copy ' si quieres copiar mas de una hoja usas array ejemplo -Sheets(array("Carga", "Formulario", "etc")).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs NombreArchivo
Application.DisplayAlerts = True
CommandBars.ExecuteMso ("FileSendAsAttachment") 'esta sentencia manda la copia de hojas a outlook
ActiveWorkbook.Close False
Kill NombreArchivo ' elimina el temporal
End Sub

perdon error de copy-paste, 

Una disculpa saludos espero ahora si puedas verlo correctamente.

Funciona muy bien... ( a excepción que no elimina el temporal en el último paso)

Como dije, Es necesario enviar esa hoja a varios destinatarios, cada uno con encabezado diferente, si fuera posible enviar únicamente el texto de la hoja ... adjunto el siguiente código:

Application.Goto Reference:="DATOS"
Cells.Select
Cells.EntireRow.AutoFit
Range("A1:C38").Select
Selection.PrintOut COPIES:=1, Preview:=False,

Es el que quisiera cambiar para que en vez de ir a la impresora, valla al correo 

Perdón ya no entendí esta ultima parte.

Pero si necesitas que se envíe un correo por cada dirección que tengas en un rango de celdas yo haría más o menos algo así:

revisa = Sheets("hoja").Range("B1").End(xlDown).RowRange("B1").SelectRange("B" & revisa).Activate   Do Until IsEmpty(ActiveCell)  ActiveCell.Offset(1, 0).SelectLoop 'el loop avanzara una fila hacia abajo y asi vas tomando las direcciones para mandar correo por correo.'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas