Boton macro para guardar como pdf en excel

Tengo una macro que funciona perfectamente pero quiero que funcione en varios ordenadores y estos tienen un diferente usuario como hago para que el directorio de guardado sea el mismo para todos sin cambiar la macro ni el nombre de usuario de los pc. No cambio la macro porque esta en google drive y todos lo accedemos desde allí.

Donde pone ... Es mi usuario que pongo para que funcione en cualquier ordenador sin importar el usuario.

La macro es esta:

Sub Botón3_Haga_clic_en()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\0\Google Drive\Ontrace\COMPTABILITAT & FINANCES\ALBARANS\Albara" & Range("d11") & " " & Range("c16"), Quality:= _
xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
[d11] = [d11] + 1

End Sub

Respuesta

Quizás te ayude esto lo que hacer es guargar en el escritorio de Windows de cada usuario

Sub GuardarComo()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
mydesk = CreateObject("wscript.shell").specialfolders("desktop") & "\"
nomarchi1 = mydesk & "MyExcel.xlsx"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=nomarchi1, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close True
MsgBox ("El archivo se guardo con éxito en " & nomarchi1), vbInformation, "AVISO"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

en este ejemplo se muestra como guardar PDF

https://youtu.be/0UuR_zRQCB4 

1 respuesta más de otro experto

Respuesta
1

No entendí muy bien qué necesitas. Si quieres que la macro funcione en cualquier ordenador, sin cambiar la macro, entonces todos los ordenadores deberán tener la misma carpeta. O tu idea es modificar la macro para que funcione de acuerdo al usuario de cada ordenador.

Si es así, con application. Username, podemos obtener el usuario de la pc y guardar en esa ruta, por ejemplo:

Sub Botón3_Haga_clic_en()
    usuario = Application.UserName
    ruta = "C:\" & usuario & "\Google Drive\Ontrace\COMPTABILITAT & FINANCES\ALBARANS\Albara"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & Range("d11") & " " & Range("c16"), Quality:= _
        xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
    [d11] = [d11] + 1
End Sub


.

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

.

Avísame cualquier duda

.

Quiero que la macro funcione en cualquier ordenador. La carpeta esta ubicada en el mismo sitio el problema era que cada nombre de usuario es diferente i marca directorio incorrecto. ¿Con la macro que me has pasado se soluciona?

Sigo sin entender, la carpeta es igual para todos, o la carpeta cambia según el usuario.

La macro que te puse es para tomar el nombre de usuario del ordenador y adaptarlo a la carpeta.

Pero en tu macro no identifiqué cuál es el usuario, tal vez si me dieras varios ejemplos de qué tienes y cuál es el problema en específico.

Analicemos la macro que te envié.

En esta línea estoy obteniendo el usuario del ordenador que está ejecutando la macro:

    usuario = Application.UserName

En la siguiente línea estoy uniendo la carpeta y el usuario:

    usuario = Application.UserName
    ruta = "C:\" & usuario & "\Google Drive\Ontrace\COMPTABILITAT & FINANCES\ALBARANS\Albara"
   

Estoy uniendo "C:\" y el usuario, pero no sé si en esta parte va el usuario. Por eso necesito ejemplos de cómo tienes tus carpetas.

Después del usuario pongo el resto de la carpeta

"C:\" & usuario & "\google ........"

Explícame con ejemplos qué necesitas y te ayudo a adaptar la macro

por ejemplo el directorio de un ornador es este: 

C:\users\Gerard\Google Drive\Ontrace\COMPTABILITAT & FINANCES\ALBARANS\Albara

El otro ordenador:

C:\users\Ricard\Google Drive\Ontrace\COMPTABILITAT & FINANCES\ALBARANS\Albara

Como ves solo cambia lo que esta en negrita que es el nombre de usuario. como puedo hacer sin cambiar la macro para que se adapte a los dos pc con diferentes usuarios.

Por eso no entendía, habías puesto esto:

"C:\0\Google Drive\Ontrace\COMPTABILITAT & FINANCES\ALBARANS\Albara"

La macro quedaría de esta forma:

Sub Botón3_Haga_clic_en()
    usuario = Application.UserName
    ruta = "C:\users\" & usuario & "\Google Drive\Ontrace\COMPTABILITAT & FINANCES\ALBARANS\Albara"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & Range("d11") & " " & Range("c16"), Quality:= _
        xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
    [d11] = [d11] + 1
End Sub

.

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

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas