Cómo enviar por correo hoja activa

Se necesita enviar por correo, sólo hoja activa. El correo es outlook.
La información que está en esta hoja debe llegar a destino como dato fijo (sin fórmulas ni referencias).

1 Respuesta

Respuesta
2

H o l a:

Te anexo la macro

Sub EnviarHoja()
'Por.Dante Amor
    Set h = ActiveSheet
    ruta = ThisWorkbook.Path & "\"
    nombre = h.Name
    h.Copy
    ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".xlsx"
    ActiveWorkbook.Close False
    '
    Set dam = CreateObject("outlook.application").createitem(0)
    dam.To = "[email protected]"
    dam.Subject = "asunto del correo"
    dam.Attachments.Add ruta & nombre & ".xlsx"
    dam.Send
End Sub

Agrega en la macro en esta línea el correo:

dam.To = "[email protected]"


Hola

Me da un error en esta línea al enviar el archivo: dam.Attachments.Add ruta & nombre & ".xlsx"

P.D.

No quiero grabar el archivo que enviaré, pero si es necesario para que funcione la macro ok.

¿Y cómo quieres enviar la hoja activa?

¿Qué versión de excel tienes?

¿Modificaste en algo la macro?

Modifiqué sólo lo indicado. El correo de destino.

La versión de excel es 2010

Si estoy trabajando en una hoja quiero mandar esa hoja. En la macro enviada me pedía grabar en un archivo nuevo la hoja a enviar.

Debe necesariamente grabar la hoja y esa es la que se envía?

Cuando me preguntó si quería grabar le dije que si y que no y en ambos casos me manda el error.

Entiendo que quieres mandar la hoja, pero si no la quieres enviar como un archivo, ¿cómo la vas a enviar?

Para enviar la hoja, se necesita guardar la hoja en un archivo de excel, entonces ese archivo de excel es el que se envía.

Prueba con esta macro. Antes de ejecutar la macro debes guardar el archivo con la macro en alguna carpeta.

Sub EnviarHoja()
'Por.Dante Amor
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Set h = ActiveSheet
    ruta = ThisWorkbook.Path & "\"
    nombre = h.Name
    h.Copy
    ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".xlsx"
    ActiveWorkbook.Close False
    '
    Set dam = CreateObject("outlook.application").createitem(0)
    dam.To = "[email protected]"
    dam.Subject = "asunto del correo"
    dam.Attachments.Add ruta & nombre & ".xlsx"
    'dam. Display
    Dam. Send
End Sub

s a l u d o s

Excelente

Una duda.

Agregué un botón para ejecutar la macro. Qué debo hacer para que éste no se vaya en la hoja enviada.

Presiona click derecho sobre el botón, selecciona la opción Tamaño y propiedades, En Propiedades, desmarca la casilla "Imprimir objeto"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas