validar existencia ruta directorio.

09/09/2004 - 16:01 por Jorge M | Informe spam
Buenas tardes a todos,

si yo deseo guardar en un directorio un archivo mediante
macros y la ruta es como esta:
\\10.2.1.11\ARCHIVOS
o esta:
C:\TEMP
o cualquier otra que por ejemplo escriba en un cuadro de
texto, cómo hago para que mediante el código me valide si
la ruta o el directorio existe para así poder guardar sin
que salga un error o de lo contrario entonces le muestro
en mensaje de error.

Gracias por la colaboración.

Jorge M
 

Leer las respuestas

#1 Héctor Miguel
10/09/2004 - 04:59 | Informe spam
hola, Jorge !

... deseo guardar en un directorio ... y la ruta es ... cualquier ... que por ejemplo escriba en un cuadro de texto
... que ... me valide si la ruta o el directorio existe ... o de lo contrario ... mensaje de error.



espero que algo de lo siguientes [al menos] te de ideas claras de 'por donde' continuar... :))
si cualquier duda o requieres apoyo adicional... ¿comentas?
saludos,
hector.

1° si [solamente] necesitas 'validar' la 'existencia' de un directorio 'X'
puedes definir una funcion personalizada y mostrar mensajes [o seguir acciones] +/- como sigue...
[estoy suponiendo que el directorio se 'toma' de 'A1', -pudiera ser del cuadro de texto-]...
en un modulo de codigo 'normal' ==Private Function DirectorioExiste(ByVal Directorio As String) As Boolean
Dim Temp As String: On Error Resume Next
Temp = GetAttr(Directorio) And 0: DirectorioExiste = (Err = 0)
End Function
Sub VerificandoDirectorio()
If DirectorioExiste([a1]) Then
MsgBox [a1], , "|\^-^/| Listo para ""grabar"" en..."
' aqui las acciones en caso de que SI 'exista' el directorio... [p.e.] '
' ActiveWorkbook.SaveAs [a1] & "NombreArchivo.xls", xlWorkbookNormal
Else
MsgBox [a1], , "NO Existe !!! <\°|°/>..."
' aqui 'otras' acciones en caso de que NO 'exista' el directorio... '
End If
End Sub
=> notas:
- no estoy seguro de que 'funcione' en rutas/networks SIN unidad 'raiz' [NO funciona para sitios web] :((
- NO es 'necesario' que el directorio 'termine' en '\' pero SI lo es para 'decirle' a excel 'donde' guardar ;)
- toma en cuenta que [p.e.] para win-xp el directorio de 'mis documentos' se encuentra 'ubicado' en...
->C:\Documents and Settings\<Usuario>\Mis documentos\<-
'mientras' que para versiones 'anteriores' de windows es 'simplemente': ->C:\Mis documentos\<-

2° si prefieres 'continuar' con el metodo de las 'llamadas' a las API's
[suponiendo que no 'se pudo' usar la sugerencia/recomendacion del 'commondialog'] ;)
y [definitivamente] necesitas que el 'mini-explorador' NO se inicie en 'MiPC'...
-> puedes utilizar otras 'constantes' [de inicio] que NO muestran la tabla 'completa' de directorios o...
-> ver/adaptar ejemplos de llamadas a funciones [algunas NO-documentadas] a las API's
en la siguiente direccion... http://vbnet.mvps.org/index.html?co...llback.htm
[obviamente]... las lineas de codigo 'habran de sufrir' una [nada ligera] 'crecidita' :(
=> notas: deberas tener en cuenta que...
- NO funciona con versiones 'anteriores' a excel 2000
- la ruta/directorio debera 'terminar' con '\' si es unidad 'raiz'... NO si es un directorio 'intermedio'
'pero'... SIEMPRE debera terminar en '\' para 'decirle' a excel 'donde' guardar los archivos <= OJO

3° te recuerdo [e 'insisto'] en que la forma mas 'corta' [en cuanto a lineas de codigo] es...
-> usar el metodo de los dialogos integrados como... 'GetOpenFilename'
[con las 'ventajas' Y 'desventajas' comentadas anteriormente] ;)

Preguntas similares