Cambiar la ruta en una carpeta existente en D:

Felis día del padre para todo aquel que lo sea.

Tengo una macro donde la ruta es esta

Direc = CreateObject("wscript.shell").specialfolders("desktop") & "\BACKUP\"

No la queiro en el escritorio, quiero esta ruta

Direc = CreateObject("wscript.shell").specialfolders("D:\Fundicion del Centro") & "\BACKUP\"

Fundicion del Centro ya existe en D:, lo que no existe es la BACKUP en Fundicion del Centro

Tal como está la ruta, en Fundición del Centro, DEBERÍA crear la BACKUP si no existe, no doy con el objetivo y no veo que cree la Backup en Fundición del Centro

Si en ves de ("desktop") coloco ("D:") & "\BACKUP\" crea la BACKUP en D: y quiero la BACKUP en D:\Fundicion del Centro

2 Respuestas

Respuesta

. l.l Feliz día del padre a todos!

Buenas estimado, la solución a mi parecer seria esta:

Direc = CreateObject("wscript.shell").specialfolders _
        ("D:\Fundicion del Centro") & "\BACKUP\"

. L .l Mejor le recomiendo usar esta función:

Public Function DirectoryValidate(Carpeta As String) As String
    Dim FullDirectory As String
    Select Case Carpeta
        Case Is = "Backups"
            FullDirectory = ThisWorkbook.Path & "\Tools\Backups"
        Case Is = "Images"
            FullDirectory = ThisWorkbook.Path & "\Tools\Images"
        Case Is = "PDFs"
            FullDirectory = ThisWorkbook.Path & "\Tools\Tickets"
        Case Is = "XMLs"
            FullDirectory = ThisWorkbook.Path & "\Tools\XMLs"
        Case Else
            MsgBox "No hay registro de carpeta  " & Carpeta, vbCritical
            Exit sub
    End Select
    If Dir(FullDirectory, vbDirectory) = "" Then
            MkDir FullDirectory
            MsgBox "La carpeta  " & FullDirectory & "  fue creado.", vbInformation
    End If
    DirectoryValidate = FullDirectory
End Function

y luego coloque el codigo asi

Direc = CreateObject("wscript.shell").specialfolders _
        (DirectoryValidate("Backup Images")) & "\"
Respuesta

Prueba:

Sub test1()
  Dim ruta As String
  ruta = "D:\Fundicion del Centro\BACKUP"
  If Dir(ruta, vbDirectory) = "" Then
    MkDir ruta
  End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas