Guardar Excel en Escritorio de Cualquier PC

Espero que me puedan ayudar, estoy creando una macro para que un archivo excel se guarde en el escritorio del PC, el problema es que tengo la ruta referida a una celda, y esa ruta es fija, y estoy compartiendo el archivo que contiene la macro con otros PC, entonces no funciona la macro.

¿Es posible pedirle a la macro que guarde el archivo en el escritorio de PC actual sin importar el usuario que tiene la sesión activa?

La macro que uso es esta. (Es la parte de al medio de la macro)

Dim nombre2 As String, Ruta2 As String
Ruta2 = Range("a1").Value
nombre2 = Range("a2").Value
ActiveWorkbook.SaveAs Filename:=Ruta2 & "/" & nombre2

Obtuve en algunas páginas el siguiente código, pero me da error al colocarlo en el campo ruta2 =.

createobject("wscript.shell").specialfolders("desktop") & "\"

1 Respuesta

Respuesta
1

H o  l a:

Prueba con lo siguiente:

    Dim nombre2 As String, Ruta2 As String
    'Ruta2 = Range("a1").Value
    Ruta2 = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    nombre2 = Range("a2").Value
    ActiveWorkbook.SaveAs Filename:=Ruta2 & "/" & nombre2

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

Hola, 

Muchas gracias por la respuesta, pero me aparece un error en esta fila. 

ActiveWorkbook.SaveAs Filename:=Ruta2 & "/" & nombre2

En esta línea que pusiste, tienes la diagonal al revés:

ActiveWorkbook.SaveAs Filename:=Ruta2 & "/" & nombre2

 Debe ser así:

    Dim nombre2 As String, Ruta2 As String
    'Ruta2 = Range("a1").Value
    Ruta2 = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    nombre2 = Range("a2").Value
    ActiveWorkbook.SaveAs Filename:=Ruta2 & "\" & nombre2

Prueba nuevamente.


También prueba con esta:

    Dim nombre2 As String, Ruta2 As String
    'Ruta2 = Range("a1").Value
    Ruta2 = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    If Err.Number = 0 Then
        nombre2 = Range("a2").Value
        ActiveWorkbook.SaveAs Filename:=Ruta2 & "\" & nombre2
    Else
        MsgBox "No existe la carpeta escritorio", vbCritical, "Error: " & Err.Number & " " & Err.Description
    End If
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas