Comprobar si un fichero existe

19/07/2006 - 18:28 por TICA | Informe spam
Hola,
necesitaria saber si se puede detectar si un path existe, o no.
Me explico, en una columna tengo creados una serie de paths a mi c:\, y
necesito saber si son reales, o no.
Es decir... yo tengo el fichero XX.jpg en mi c:\ y en la columna A tengo
creado en la primera línea c:\xx.jpg, y en la segunda c:\yy.jpg.
Necesito poner en la columna B una función que me devuelva un 1/0... o un
verdadero/falso... o un si/no en función de si ese path existe, o no.
En el ejemplo, en la primera línea me devolvería un 1 (verdadero) y en la
segunda un 0 (falso)

Si esto no és posible... quizá alguien me pueda decir cómo capturar el path
correcto... pero pensar que estoy hablando de mas de doce mil ficheros!!! por
lo que hacerlo manual no me lo planteo ;)

gracias,
Tica

Preguntas similare

Leer las respuestas

#1 Francisco Mty
19/07/2006 - 18:52 | Informe spam
Post de Fernando Arroyo:

Function HayFoto(rArtículo As Range) As String
If Dir("C:\prueba\" & rArtículo.Value & ".jpg") <> "" Then HayFoto =
rArtículo.Value & ".jpg" Else HayFoto = ""
End Function

Modifica este codigo segun tus necesidades
Saludos
Respuesta Responder a este mensaje
#2 Héctor Miguel
20/07/2006 - 08:28 | Informe spam
hola, Tica !

... saber si se puede detectar si un path existe, o no.
... en una columna tengo creados una serie de paths a mi c:\, y necesito saber si son reales, o no.
... tengo el fichero XX.jpg en mi c:\ y en la columna A tengo creado en la primera linea c:\xx.jpg, y en la segunda c:\yy.jpg.
... poner en la columna B una funcion que me devuelva un 1/0... o un verdadero/falso... o un si/no en funcion de si ese path existe, o no.
En el ejemplo, en la primera linea me devolveria un 1 (verdadero) y en la segunda un 0 (falso) [...]



op1: usando codigo/vba para definir una funcion personalizada que haga lo que solicitas [verificar si existe o no un fichero 'dado'] p.e.
a) abres el editor de vba... atajo de teclado = {Alt}+{F11}
b) vas a [menu] insertar / modulo...
c) copias/pegas las siguientes instrucciones
en la ventana grande a la derecha ==Function Fichero_existe(Fichero As String) As Boolean
Fichero_existe = Len(Dir(Fichero))
End Function
== -> nota: si la vas a usar sobre una celda/cadena de texto 'vacia'... cambia la instruccion a...
Fichero_existe = Len(Fichero) * Len(Dir(Fichero))
== d) la funcion anterior puedes usarla como a las funciones 'nativas' del excel -p.e.- en 'B1' -> =Fichero_existe(a1)
e) si quieres que el resultado [en lugar de vardadero/falso] sea 1/0, usa... -p.e.- en 'B1' -> =--Fichero_existe(a1)

op2: si no quieres usar codigos/vba... prueba con las macro-funciones del -viejo- excel version 4.x [+/- como sigue]:
a) selecciona UNA celda 'relativa' a donde pondras el nombre del fichero [si en 'A1' -> selecciona 'B1']
b) ve a [menu] inserar / nombre / definir...
c) asigna un nombre [p.e. Existe]
d) en el campo de 'se refiere a:' pones la siguiente formula: -> =no(eserror(archivos(!a1)))
=> NOTA la direccion 'relativa' -> a1 [NO absoluta $a$1] Y... el signo inicial ->
d) [aun en la celda 'B1']... usa la formula definida como nombre... -> =existe(a1)
e) si quieres que el resultado [en lugar de vardadero/falso] sea 1/0, usa... -p.e.- en 'B1' -> =--Existe(a1)
== NOTAS:
1) si tu excel es en ingles... cambia la formula con la que se define el nombre a: -> =not(iserror(files(!a1)))
2) existe un 'riesgo latente' de desestabilizar al excel [con este tipo de nombres] cuando se copian celdas que los utilizan...
a otras hojas o libros en versiones anteriores a excel xp/2003 :-((

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida