En excel, dos macros, crear pdf con la hoja 1 y adjunatrla y enviarla por mail

Tengo problemas, no me reconoce que archivo adjuntar!

Sub ReportePDF()
On Error Resume Next
Dim NombreArchivo As String
NombreArchivo = Sheets("Pedidos del mes").Range("b2").Value
Sheets("Pedido").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\USER-PC\Mis documentos\" & NombreArchivo & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
PDF1 = "\\USER-PC\Mis documentos\" & NombreArchivo & ".pdf"
End Sub
Sub Mail()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
'aqui va el correo electronico al cual queremos enviar el documento o mail.
.To = "[email protected]; [email protected]; [email protected]; [email protected]; [email protected]; 'Paola Ruiz Diaz' <[email protected]>"
.CC = "Ricardo Rosales <[email protected]>"
.BCC = ""
'aqui el asunto
.Subject = Sheets("pedidos del mes").Range("b2").Value
'el cuerpo del mensaje
.Body = "Estimados, Adjunto pedido"
' y aquí va el documento adjunto podemos poner la dirección de un documento cualquiera entre comillas para adjuntarlo.
.Attachments.Add (PDF1.pdf)
.display
.send
'aquí también puede ir un .send que enviara el correo automáticamente, por ahora solo lo mostrara

End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

1 Respuesta

Respuesta
2

A simple vista estás definiendo en la variable PDF1 el nombre del archivo con la extensión... por lo tanto en la línea del Attachments ya no debieras incluirla.

Probalo y comentame.

Sdos

Elsa

GRACIAS! Elsa

Si, eso intente y no corre. me marca en amarillo .Attachments.Add

Otro error que veas?

Si, que no veo dónde tenes declarada la variable de modo público.

PDF1 es una variable donde guardás el nombre del libro para adjuntar en otra macro... te faltaría al inicio de todo esta línea.

Public PDF1 As String
Sub ReportePDF()
On Error Resume Next
Dim NombreArchivo As String
NombreArchivo = Sheets("Pedidos del mes").Range("b2").Value
Sheets("Pedido").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\USER-PC\Mis documentos\" & NombreArchivo & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
PDF1 = "\\USER-PC\Mis documentos\" & NombreArchivo & ".pdf"
End Sub
Sub Mail()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
'aqui va el correo electronico al cual queremos enviar el documento o mail.
.To = "[email protected][email protected][email protected][email protected][email protected]; 'Paola Ruiz Diaz' <[email protected]>"
.CC = "Ricardo Rosales <[email protected]>"
.BCC = ""
'aqui el asunto
.Subject = Sheets("pedidos del mes").Range("b2").Value
'el cuerpo del mensaje
.Body = "Estimados, Adjunto pedido"
' y aquí va el documento adjunto podemos poner la dirección de un documento cualquiera entre comillas para adjuntarlo.
.Attachments.Add (PDF1)
.display
'.send
'aquí también puede ir un .send que enviara el correo automáticamente, por ahora solo lo mostrara
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Y si aún así te da algún error, al depurar observa el valor de PDF1 y luego escribimelo (pasas el mouse x la línea amarilla y verás el contenido de la variable.)

Sdos!

¡Gracias! GRACIAS GRACIAS gracias

FUNCIONO!

Te consulto -como si no fuera mucho-, hay una manera (utilizo outlook) que el adjunto este en la pantalla, ¿sin necesidad de abrir el adjunto? ¿O sea de manera previsualizada?

Creo entonces que ya podrías modificar la valoración que le diste a la respuesta, ¿no te parece?

¿Con respecto a lo último... estás pensando en que se vea como un texto en el cuerpo del mensaje? Creo que no te entendí. O mejor me lo explicas en una nueva consulta así no mezclamos los temas.

Sdos!

Por supuesto quiero poner que es excelente, la respuesta. Pero no me deja, solo esta la opción buena!

Y comencé a seguirte, ya que seguiré avanzando con mi proyecto y te quiero de mi lado! jejej

Hay manera de mejorar tu puntaje? hacérmelo saber! Y desde ya..seguire tu consejo y haré una nueva consulta con el "@ elsa matilde" ¿esta bien eso?

espero tu respuesta para hacer mi nueva consulta-

y nuevamente gracias

No importa, nos vemos en la próxima consulta.

PD) Me llamó la atención que siempre finalizas de ese modo ... para la próxima espera a obtener las respuestas y luego verás las distintas opciones.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas