Guardar un documento en una ruta variable en la red con una macro.

Estoy teniendo un problema con una macro que uso para exportar de excel en formato pdf con un nombre constante en una ruta que podría ser variable..

Tengo una carpeta en "C", se llama "Cartera" y dentro de ella tengo dos mas: "Cuentas" y "Misceláneos" ahora bien, en un libro que esta dentro de cuentas tengo una macro que lo exporta y lo guarda en la carpeta misceláneos...

Private Sub GuardarenPDF()
dep = ActiveSheet.Range("M4").Text
condominio = ActiveSheet.Range("H1").Text
hoy = Format(Date, "dd-mm-yyyy")
    ChDir ThisWorkbook.Path & "\..\" & "\Misceláneos"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Cuenta al  " & hoy & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Todo funciona muy bien.... Aun si lo cambio de "C" a cualquier otra carpeta, pero sucede que sólo funciona así si estoy en ruta local, si la copio en una ruta de red... Esta macro hace algo que no entiendo.... Guarda en "Mis Documentos".... 

¿Puede alguien ayudarme a reparar esto?

1 Respuesta

Respuesta
2

H o l a:

En tu macro estás poniendo 2 diagonales en esta parte:

ChDir ThisWorkbook.Path & "\..\" & "\Misceláneos"

Antes de la M de Misceláneos tienes otra diagonal

Podría ser así:

ChDir ThisWorkbook. Path & "\..\Misceláneos"

Otra opción es que pongas en la macro directamente la ruta, por ejemplo:

Private Sub GuardarenPDF()
    dep = ActiveSheet.Range("M4").Text
    condominio = ActiveSheet.Range("H1").Text
    hoy = Format(Date, "dd-mm-yyyy")
    ruta = "C:\Cartera\Miscelaneos\"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & "Cuenta al  " & hoy & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Observa como después de miscelaneos\ estoy poniendo una diagonal

También revisa que en el parámetro Filename:= estoy poniendo la ruta y el nombre.


Otra opción es que simplemente dejes el archivo PDF en la misma carpeta donde tienes el archivo de excel con la macro:

Private Sub GuardarenPDF()
    dep = ActiveSheet.Range("M4").Text
    condominio = ActiveSheet.Range("H1").Text
    hoy = Format(Date, "dd-mm-yyyy")
    ruta = ThisWorkbook.Path & "\"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & "Cuenta al  " & hoy & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Otra opción, es revisar si existe la carpeta miscelaneos en una carpeta anterior a donde pusiste la macro, si no existe, entonces te crea la carpeta miscelaneos.

Private Sub GuardarenPDF()
    dep = ActiveSheet.Range("M4").Text
    condominio = ActiveSheet.Range("H1").Text
    hoy = Format(Date, "dd-mm-yyyy")
    ruta = ThisWorkbook.Path & "\..\miscelaneos\"
    If Dir(ruta, vbDirectory) = "" Then
        MkDir (ruta)
    End If
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & "Cuenta al  " & hoy & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Revisa bien los nombres de la ruta. 


:) 
:) 

¡Gracias! 

No sé por que razón no me funcionaba, aun quitando la diagonal sucedía lo mismo, en la red no me guardaba sino en "mis documentos"... no puedo guardarlo en la misma ruta donde esta el archivo que tiene la macro porque necesito que esa ruta sea sólo para archivos específicos, y no podía poner la ruta invariable porque la carpeta debe poder moverse hacia cualquier disco en la red o fuera de ella... 

Así que probé con la última y de pronto funcionó... aunque la carpeta si existe ya los guarda en ella sin problema ni necesidad de crearla..

Muchas gracias por tu ayuda eres muy amable...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas