Macro que convierta la hoja activa en pdf y la envíe por correo desde Excel

Tengo esta macro creada por un experto del foro y he tratado de modificarla para que me funcione con mi Libro de Excel, pero me manda error donde les indico. Necesito ayuda para que me funcione. Es urgente.

La macro es esta:

Sub proceso()
'por luismondelo
Application.ScreenUpdating = False
Application.DisplayAlerts = False

ruta = ActiveWorkbook.Path & "\"
mio = ActiveWorkbook.Name
fecha = Range("M1").Value
cliente = Range("O1").Value
correo = Range("P1").Value
nombre = fecha & "_" & cliente & "Reporte Reembolsos"

Sheets(Clientes).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ruta & nombre & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olMailItem)
parte2.to = correo
parte2.Subject = "Factura Reembolsos " & fecha & cliente
parte2.Body = "Estimados Sres.:" & Chr(13) & _
"Nos complace realizar el envío de la factura del asunto, según nuestro acuerdo." _
& Chr(13) & "Atentamente..."
parte2.Attachments.Add ruta & nombre & ".pdf"
parte2.Display
End Sub

El error está en esta parte:

Sheets(Clientes).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ruta & nombre & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Me dice: Si ha producido el error '9'. Subíndice fuera de intervalo.

1 Respuesta

Respuesta
1

Prueba con lo siguiente para enviar la hoja que tienes seleccionada

activesheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ruta & nombre & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Si no es la hoja que quieres enviar, según puedo ver en la macro, estás seleccionando un cliente y el nombre del cliente tiene su propia hoja, entonces prueba con esto, en la parte de Sheets tienes Clientes (con una "s" al final) y me parece que debe ser sin la "s" : Cliente

Sheets(Cliente).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ruta & nombre & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

.

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

.

Avísame cualquier duda

.

¡Gracias! 

Ya solucioné el error. El problema estaba en que estaba haciendo referencia a una celda que tiene el valor configurado como fecha y estaba en el formato 22/05/2017, en vez de 22-05-2017, y a la hora de nombrar el archivo la macro se detenía porque "/" no es válido en un nombre de archivo.

El código en sí, al parecer no tenía ningún problema.

Muchas gracias!

Katherine Quéliz

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas