Hago referencia con "BUSCARV" a un dato de un archivo en mi pc y me sale el mensaje: No se puede obtener acceso a "nombredelarchivo.xls"

10/04/2007 - 17:28 por dwx110 | Informe spam
Estuve leyendo un poco sobre temas semejantes, pero todos suelen
hablar sobre referencias a archivos en red, en mi caso es un archivo
en mi propia pc. La cosa va a asi:

Mediante una macro asigno a celdas informacion de otros archivos
excel, esto lo hago utilizando BUSCARV, lo extraño de esto es que
cuando hago un copiar pegar de una de estas celdas (esta celda
contiene #N/A porque supuestamente no se puede tener acceso al archivo
al que hace referencia) a otra, no sale ningun error que haga
referencia al acceso del archivo ni ningun otro y me muestra el dato
pedido.

Esta macro la he hecho con excel 2003, tengo otras macros hechas con
excel 2000 que hacen referencia al mismo archivo y no hay ningun
problema de acceso.

Que puedo hacer????.

PD:No se como mostrar mi nick o nombre, siempre que pregunto o
respondo solo sale mi mail.

Gracias.

Preguntas similare

Leer las respuestas

#1 Abraham
10/04/2007 - 18:23 | Informe spam
Pero, usas macro o BUSCARV???? Explica bien tu dilema amigo.

Abraham
Respuesta Responder a este mensaje
#2 dwx110
10/04/2007 - 21:06 | Informe spam
No me explique bien, con la macro lo que hago es colocar en ciertas
celdas la funcion BUSCARV, la cual hace referencia a otro archivo.
Dentro de mi macro tengo algo como esto:

celda.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(""" + producto + """," + ruta
+ "'!" + rango + "," + columna + ",0)),""sin inform."",VLOOKUP(""" +
producto + """," + ruta + "'!" + rango + "," + columna + ",0))"

Entonces lo que ocurre primero, luego de ejecutar esta sentencia, es
que se muestra una ventana indicando NO SE PUEDE OBTENER ACCESO A:
"nombredelarchivo.xls"., luego como se genera un error la celda es
llenada con "sin inform.".

Ahora que he estado viendo un poco mas sobre mi problema, uan vez que
ejecuto la macro tengo todas las celdas que utilizan el BUSCARV
llenas con la cadena "sin inform", luego guardo este archivo. Despues
vuelvo abrir el archivo y actualizo los vinculos, estos toman el
valor que relamente debieron tener desde el principio, l oque me
demuestra que n oexiste ningun tipo de restriccion con respecto al
archivo al que se hace referencia.

Espero que se entienda mi explicacion.

Que peudo hacer????, porque lo qe yo uqiero es que se muestre de
frente los valores correctos que pido, ya uqe si vo ya estar grabando,
cerrando y abriendo el archivo, se hace tedioso, además qeu el archivo
tiene como 2000 registros.

Gracias.
Respuesta Responder a este mensaje
#3 Héctor Miguel
11/04/2007 - 07:01 | Informe spam
hola, ?

... con la macro lo que hago es colocar en ciertas celdas la funcion BUSCARV
la cual hace referencia a otro archivo. Dentro de mi macro tengo algo como esto:
celda.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(""" + producto + """," + ruta + "'!" + rango + "," + columna + ",0)),""sin inform."",VLOOKUP(""" + producto + """," + ruta + "'!" + rango + "," + columna + ",0))"

Entonces lo que ocurre primero, luego de ejecutar esta sentencia, es que se muestra una ventana indicando
NO SE PUEDE OBTENER ACCESO A: "nombredelarchivo.xls"., luego como se genera un error la celda es llenada con "sin inform."...



1) podrias exponer un ejemplo mas... 'concreto' en relacion con el nombre 'real' del: -> "nombredelarchivo.xls" ?
es probable que a las referencias les haga falta algun apostrofo -> ' <- -???-
a) lo utilizas ANTES del signo !... -> + ruta + "'!"
b) [probablemente] lo estas 'perdiendo' ANTES de la variable ruta [despues de la coma ?] -???-
[p.e.] -> + """,'" + ruta + "'!"

2) tambien seria de utilidad si 'traduces' a sus valores 'reales' las variables con las que depositas la formula...
+ producto + ruta + rango + columna -???-

3) [probablemente] si cambias de propiedad...
de: -> .FormulaR1C1
a: -> .Formula
-> FormulaR1C1 'espera/asume/supone/...' que las referencias seran con el estilo R1C1/L1C1/F1C1 NO 'A1' -?-

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 dwx110
11/04/2007 - 15:50 | Informe spam
Antes que todo, no se todavia como mostrar mi nick y como veran
siempre sale mi correo, pero bueno ya alguien de dira como hacerlo.

Con respecto a la ruta que paso o en general la formula, no cabe duda
de que esta correcta, ya que cuando yo actualizo los vinculos aparecen
los datos a los que hacia referencia. El problema es qeu al comienzo
me sale que no puedo acceder al archivo a los que mis vinculos hacen
referencia.

Probe con solo Formula y sigue igual.

Ahora hay un cambio, extrañamente ya no me sale el messagebox
diciendome que no puedo acceder al archivo que hace referencia, sino
de frente me sale una ventana de busequda, que tiene como titulo
ACTUALIZAR VALORES: archivo.xls

Ahora si no tengo idea de que hacer, en todo caso me bastaria con que
no me saliera esa ventana de busqeuda de archivo.

Gracias.
Respuesta Responder a este mensaje
#5 dwx110
11/04/2007 - 16:19 | Informe spam
Ya me di cuenta por qeu es qeu me sale esa ventana, lo que ocurre es
que inicialmente yo mediante una funcion, obtenida de este foro,
obtengo los nombres de todas las hoja del libro (al que luego hare
refrencia con buscarv) sin tener que abrirlo, esto lo hace con ADO (no
tengo muchos conocimientos o nada sobre ADO). Mas o menos es asi:

Esta es la funcion:

Sub llenaInformacionPorCliente(zona As String, tipo As String,
celdaInicial As String)
Dim rutas As New rutas, prop As New Propiedades
Dim Libro As ADOX.Catalog, Hoja As ADOX.Table, archivo As String,
cliente As String
Set Libro = New ADOX.Catalog
archivo = Right(rutas.rutaDesplazamientos,
Len(rutas.rutaDesplazamientos) - 1) + _
cbxAño.Value + "\" + cbxMes.Value + "\" +
prop.dameRuta(zona) + zona + ".xls"
Libro.ActiveConnection = "Provider=MSDASQL.1;Data Source=Excel
Files;Initial Catalog=" & archivo
For Each Hoja In Libro.Tables
cliente = Application.Substitute(Hoja.Name, "'", "")
cliente = Application.Substitute(Hoja.Name, "#", ".")
If Right(cliente, 1) = "$" Then
cliente = Left(cliente, Len(cliente) - 1)
If UCase(cliente) <> "CONSOLIDACION" And UCase(cliente) <>
"RESUMEN" And UCase(cliente) <> "T.DESPLAZ." _
And UCase(cliente) <> "T.STOCK" And UCase(cliente) <>
"T.VENTA" And UCase(cliente) <> "T.DESPLA" Then

'********************************************************
llenaInformacionPorBProduct celdaInicial, zona,
UCase(cliente), tipo

'********************************************************
celdaInicial = Range(celdaInicial).Offset(1,
0).Address(, , xlA1)
End If
End If
Next
celdaInicial = Range(celdaInicial).Offset(-1, 0).Address(, , xlA1)
Set Libro = Nothing
End Sub


Dentro del metodo "llenaInforamcionPorBProduct" es que hago referencia
(con buscarv) a datos de este archivo que inicialmente he utilizado.

Entonces yo creo que la solucion seria obtener los datos qeu necesito
utilizando algo de ADO, porque en realidad ya tengo abierto, por asi
decirlo, el archivo de donde deseo obtener los datos. Lo que si
necesito utilizar de todas maneras es el buscarv.

Existe alguna forma de utilizar la funcion buscarv con ADO????.

Gracias.

PD:sigo sin saber como mostrar mi nick.

Nos vemos.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida