Abrir carpeta con ruta dinámica

En un formulario quería establecer para un botón:

  • Crear una carpeta que se llame "Año Mes Dia - A gabinete" (p.e. 20201110 - A gabinete) dentro de una ruta que sigue este modelo: "\\unidad \carpetafija1 \carpetafija2 \tramite" donde tramite es un valor del campo del formulario asociado a cada uno de los trámites que se recogen en la BD.

¿Alguna sugerencia?

Respuesta
1

Chico, por más que lo leo, no lo entiendo. ¿Te refieres a que cree una carpeta con el nombre de un trámite que figure en un cuadro de texto o que cree una subcarpeta 20201112 A gabinete dentro de la carpeta anterior? ¿Lo de 20201112 es una carpeta o un archivo?

Verás si tengo un formulario con un cuadro de texto llamado Tramite y un botón de comando(aunque no sería necesario pero...)

Cuando pulso el botón

El código que le tengo puesto al botón es(Dios mío, que bueno era el D.O.S.)

Private Sub Comando283_Click()
MkDir "C:\users\gonza\documents\borrar\" & Me.Tramite & ""
End Sub

Si pones el código como

Private Sub Comando283_Click()
Dim d As String
d = Year(Date) & "" & Month(Date) & "" & Day(Date) & " " & "A gabinete"
MkDir "C:\users\gonza\documents\borrar\" & Me.Tramite & ""
MkDir "C:\users\gonza\documents\borrar\" & Me.Tramite & "\" & d & ""
End Sub

te crearía la otra subcarpeta dentro de la carpeta

Para lo mal que me expliqué has acertado de pleno... Muchas gracias.

Ya puestos en el tema, lo que quiero preguntar ahora será fácil. Son dos cosas:

  1. Que al mismo tiempo que se crea dicha carpeta, se acceda para dejar contenido.
  2. Qué tengo que añadir para que, si la carpeta ya está creada porque hemos pulsado el botón anteriormente, me la abra directamente.

De nuevo, gracias.

Aquí si me he perdido. ¿Te refieres a que te abra la subcarpeta 202021113...?

Si es eso basta conque debajo del código anterior le añadas la línea

Application.FollowHyperlink "C:\users\gonza\documents\borrar\" & Me.Tramite & "\" & d & ""

Te comento:

sí, lo que pregunto es que cuando haga clic en el botón, haga la comprobación de si está creada esa subcarpeta y si no está creada que la cree y la abra, y si está creada que la abra.

Lo que tengo ahora es esto:

d = Year(Date) & "" & Month(Date) & "" & Day(Date) & " " & " - A Gabinet"
MkDir "\\COMPARTIDO\PREG-DGIEO\DOC\" & Me.tramit & "\" & d & ""
Application.FollowHyperlink "\\COMPARTIDO\PREG-DGIEO\DOC\" & Me.tramit & "\" & d & ""

Y claro, como la subcarpeta ya existe (la he creado anteriormente haciendo clic por primera vez en el botón), al hacer clic una segunda vez me salta el depurador de VB resaltando la línea de la instrucción MkDir

Como la subcarpeta la vas a abrir, esté creada o no, es preferible cambiar el código. Mantenemos el formulario como estaba y la carpeta no está creada

Pulso el botón y 

Me avisa de que no existe y la crea. Los mensajes se pueden perfectamente suprimir pero me parecen más didácticos. Al aceptar

Puedes ver arriba que las carpetas existen y ha abierto la de 2020.....

Si volviera a pulsar el botón

He cambiado el código, en este caso sería

Private Sub Comando283_Click()
Dim ruta, d As String, x
d = Format(Date, "yyyymmdd") & " " & "A gabinete"
ruta = "C:\users\gonza\documents\borrar\" & Me.Tramite & "\" & d & ""
x = Dir(ruta, vbDirectory)
If x = "" Then
   MsgBox "La carpeta " & ruta & " no existe, se creará", vbOKOnly + vbInformation, "Aviso para los navegantes"
   MkDir "C:\users\gonza\documents\borrar\" & Me.Tramite & ""
   MkDir "C:\users\gonza\documents\borrar\" & Me.Tramite & "\" & d & ""
ElseIf x <> "" Then
   MsgBox "Nenico, ¿ es que no te has dado cuen de que la carpeta " & ruta & " ya existe, se abrirá directamente", vbOKOnly + vbExclamation, "Hay que prestar más atención. De nada"
End If
Application.FollowHyperlink ruta
End Sub

Simplemente perfecto y lo que necesitaba.

Muchas gracias por tu paciencia y dedicación.

Un abrazo (y perdona la espera dado que he estado fuera unos días).

Saludos

Cierra la pregunta valorando la respuesta, ya que si no, me aparece como pendiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas