Macros excel. Como poner una ruta que funcione en diferentes PC
Me gustaría que alguien me pudiera ayudar en las siguientes dudas:
Estoy creando un excel que posteriormente será remitido a otras personas para que le den uso en diferentes PCs. Este excel consta de 4 hojas, de las cuales 2 no son visibles para el usuario final y en las que se encuentran todas las fórmulas que generan un informe final.
En la hoja 1 que es visible para el usuario final se encuentran una serie de casillas para rellenar por el usuario y 4 botones desde los que se ejecutan las diferentes macros. Estas son: GRABAR INFORME (actualiza las tablas dinámicas de forma oculta sin que estas sean visibles para el usuario), VISTA PREVIA DEL INFORME ( salta directamente a la hoja donde esta el informe), GENERAR INFORME (convierte en PDF el informe y lo guarda) y ENVIAR INFORME POR MAIL (hace un attachment del pdf a un correo de outlook, con el cuerpo del mensaje personalizado y a una dirección de correo que toma de la celda B8 de la hoja 1).
En mi PC me funciona todo correctamente, pero cuando he mandado una primera prueba al usuario final no le genera el informe ni se lo manda por mail.
Mi dudas son:
1 - Como tengo que hacer la macro del botón GENERAR INFORME para que la ruta en la que crea y guarda el PDF funcione en cualquier equipo (se usara en diferentes equipos) o en su defecto permita elegir donde guardar el PDF y le de el nombre Informe seguido del nombre y apellidos de las casillas B4 y B5 de la hoja1 (nombre y apellidos)
2- Como tengo que hacer la macro del botón ENVIAR INFORME POR MAIL para que localice ese archivo y lo adjunte a un correo (no quiero que lo envíe, ¿solo qué genere el correo electrónico y sea el usuario el que de a enviar)?
Creo que el error esta en las rutas que tengo puestas y que solo funcionan en mi pc, además cuando doy a cancelar la ejecución de la macro la hace igualmente (genera el archivo y lo prepara para mandar por correo). Esto es lo que tengo puesto ahora mismo:
Para generar el Informe:
Sub GenerarInforme()
'
' GenerarInforme Macro
' Generar Pdf de la hoja Informe
'
'
Sheets("INFORME").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\hp8000\desktop\informe" & Trim(InputBox("informe")) & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
Para que lo mande por correo:
Sheets("hoja1").Select
Dim NombreArchivo As String
NombreArchivo = Range("B4").Value
Sheets("INFORME").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ruta & "\informe" & Trim(InputBox("informe")) & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
strReportName = ruta & "\informe.xlsm"
Dim objOutlook As Object
'Dim objMail As Object
Dim objOutlookAttach As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(olMailItem)
Set objOutlookAttach = objOutlook.CreateItem(olAttachMents)
With objMail
Sheets("hoja1").Select
.To = Hoja1.Range("B8").Value
.Subject = "Informe"
.Body = "Estimado Antonio, adjunto te mando…"
.Attachments.Add ruta & "\informe.pdf"
.display
End With
Set objMail = Nothing
Set objOutlook = Nothing
End Sub