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
1

. 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
1

Prueba:

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

NO ME ESTÁN LLEGANDO LOS MAILS CON LAS RESPUESTAS. La 2ª ves que mando grito al cielo
Que desgracias este foro, muy bueno pero tiene estas cosas que no es la 1ª ves ni la 10ª y al parecer no será la ultima.

A todos millón de gracia, voy probando y diré algo. Disculpen el atraso pero pasan estas cosas

Hola Dante, tu respuesta en Junio, mis disculpas. Así mismo a L I y Eduardo, disculpen el atraso

Tampoco me llegan las notificaciones desde hace varias semanas. Tal vez ya no le están dando el mantenimiento requerido a este foro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas