Ayuda con código de macro

01/10/2008 - 01:32 por Mk | Informe spam
Hola!

De verdad que no lo entiendo...mi nivel de conocimiento en vb es muy
básico pero he estado haciendo pruebas y mirando por internet y no
encuentro la razón por la que me aparece siempre un error cuando ejecuto
una parte de una macro muy sencilla.

Escribo el código:

Rem Definimos el Nombre del artículo

Range("H4").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(R3C6,'C:\Seguimiento Comercial x Artículo
2009\BBDD\FY 09\[BAYPA.xls]Todos pvp'!C1:C2,2,0)"

Rem Definimos el Ba del artículo

'Range("K4").Select
'ActiveCell.FormulaR1C1 = _
' "=VLOOKUP(R3C6,'C:\Seguimiento Comercial x Artículo
2009\BBDD\FY 09\[BAYPA.xls]Todos pvp'!C1:C11,11,0)"

Rem Definimos el Pa del artículo

'Range("N4").Select
'ActiveCell.FormulaR1C1 = _
' "=VLOOKUP(R3C6,'C:\Seguimiento Comercial x Artículo
2009\BBDD\FY 09\[BAYPA.xls]Todos pvp'!C1:C13,13,0)"

Aparentemente lo único que hace esta parte de la macro es que en las 3
celdas anteriores (H4, K4 y N4) escribe la función Buscarv. Siempre que
la ejecuto me aparece un mensaje de error que dice:

"Recursos insuficientes. Seleccione menos datos o cierre aplicaciones."

Pues bien, acepto el mensaje, elijo la opción de depurar y siempre me
dirige al código de K4 ó en su defecto N4. Si anulo ese código funciona
correctamente por ejemplo en H4 y no me muestra ningún error.

Algo que tampoco entiendo es que abro el fichero que contiene la fuente
de datos y aparentemente todo está ok pero al intentar cerrarlo me
aparece de nuevo la ventana con el mensaje anterior.

Quizás la solución es algo muy simple para alguien que controla del tema
pero a mí me tiene desquiciado, ¿me podéis dar alguna idea?.

Muchas gracias y perdón por el ladrillo.

Mkastur

Preguntas similare

Leer las respuestas

#6 Mk
02/10/2008 - 02:15 | Informe spam
Juan M escribió:
Hola,



Hola!

En tanto regresa Héctor, te comento.
Creo que llevas razón, las columnas que estás indicando son completas y en
el caso

\FY 09\[BAYPA.xls]Todos pvp'!C1:C11,11,0)"



te refieres al rango $A:$K, para buscar en la columna K,

En cuento al error, podrías indicar cual es el error que resulta?

Un saludo,
Juan



El error que me aparecía siempre era el mismo, cuando empezaba a
ejecutarse la macro se me aparecía una ventana en la pantalla con el
siguiente mensaje:

"Recursos insuficientes. Seleccione menos datos o cierre aplicaciones."

Ya lo he explicado en mi post inicial y después de indagar un poco y
hacer muchísimas pruebas he concluido que el error no está en el código
de la macro, el error está oculto de algún modo en el archivo origen.

Lo he troceado en otros 3 ficheros diferentes y ahora funciona
correctamente.

Muchas gracias por tu ayuda.

Un saludo.

Mk
Respuesta Responder a este mensaje
#7 Héctor Miguel
02/10/2008 - 05:16 | Informe spam
hola, (...) ???

... tras numerosas pruebas he llegado a la conclusion de que es el fichero origen el que tiene algun tipo de error. He probado a copiar los datos a otro fichero y he realizado mil pruebas y al final lo unico que me ha funcionado es
segmentar ese fichero en otros 3 para que la macro no se interrumpa con un mensaje de error...



la formula que expones "hace pensar" que necesitas (prefieres o insistes en) mantener cerrado el fichero de origen -?-
y es probable que ese fichero NO este corrupto (o a punto de estarlo ?) sino que hagas una "comunicacion desgastante"
entre otras probabilidades (y solo de manera enunciativa) las siguientes podrian ser causas y soluciones posibles:

causas:
- mantener cerrado tu fichero de origen y que este contenga "sus formulas" (muchas ?, complicadas ?, ???)
- que estes haciendo "unas cuantas" (re)selecciones de celdas para depositar una formula (igual ?) en cada una
- seguramente se me podrian ocurrir unas tantas mas, el temor seria las que NO se me ocurran :))

soluciones ?:
- evitar (re)selecciones de celdas (en la mayoria de los casos no son necesarias)
- inhibir la actualizacion de la pantalla y poner a la aplicacion en modo de recalculo manual (al inicio de la macro)
- depositar una sola formula (quiza por grupo de filas o columnas) y utilizar un "auto-relleno" para el resto de las celdas
- restaurar el modo de recalculo a automatico (al finalizar la macro)
- posblemente otras mas (si se pudieran conocer los suficientes detalles "reales")

espero que algo de lo anterior te sirva (al menos) como base para buscar/encontrar causas y soluciones ;)

saludos,
hector.
Respuesta Responder a este mensaje
#8 Juan M
02/10/2008 - 08:04 | Informe spam
Hola,

Disculpas por no haberme dado cuenta que ya habías comentado el error, y
creo que de nuevo tienes razón el código no es el culpable de ese error y
donde presumiblemente está el error está en el otro libro si como dices

Algo que tampoco entiendo es que abro el fichero que contiene la fuente
de datos y aparentemente todo está ok pero al intentar cerrarlo me
aparece de nuevo la ventana con el mensaje anterior.





y al trocearlo de repente funciona, a mi me da que pensar que el problema
esté en el libro de origen de datos.

Sin saber como considera excel la captura de datos desde libros cerrados (no
se si sumará los recursos necesarios de un libro y otro y por eso llega a
mostrar el mensaje???), yo no tengo explicaciones que ofrecer para
solucionar el problema, lo lamento.

Espero que después de seguir/comentar con Héctor alguna opción llegues a una
solución satisfactoria sin tener que trocear el archivo.

Un saludo,
Juan



"Mk" escribió
Juan M escribió:
Hola,



Hola!

En tanto regresa Héctor, te comento.
Creo que llevas razón, las columnas que estás indicando son completas y
en el caso

\FY 09\[BAYPA.xls]Todos pvp'!C1:C11,11,0)"



te refieres al rango $A:$K, para buscar en la columna K,

En cuento al error, podrías indicar cual es el error que resulta?

Un saludo,
Juan



El error que me aparecía siempre era el mismo, cuando empezaba a
ejecutarse la macro se me aparecía una ventana en la pantalla con el
siguiente mensaje:

"Recursos insuficientes. Seleccione menos datos o cierre aplicaciones."

Ya lo he explicado en mi post inicial y después de indagar un poco y hacer
muchísimas pruebas he concluido que el error no está en el código de la
macro, el error está oculto de algún modo en el archivo origen.

Lo he troceado en otros 3 ficheros diferentes y ahora funciona
correctamente.

Muchas gracias por tu ayuda.

Un saludo.

Mk
Respuesta Responder a este mensaje
#9 Mk
02/10/2008 - 10:33 | Informe spam
Héctor Miguel escribió:
hola, (...) ???




Hola!!

... tras numerosas pruebas he llegado a la conclusion de que es el




fichero origen el que tiene algun tipo de error. He probado a copiar
los datos a otro fichero y he realizado mil pruebas y al final lo uni
co que me ha funcionado es segmentar ese fichero en otros 3 para que
la macro no se interrumpa con un mensaje de error...

la formula que expones "hace pensar" que necesitas (prefieres o insis


tes en) mantener cerrado el fichero de origen -? y es probable que ese
fichero NO este corrupto (o a punto de estarlo ?) sino que hagas una
"comunicacion desgastante" entre otras probabilidades (y solo de manera
enunciativa) las siguientes podrian ser causas y soluciones posibles:

Tal y como comentas el fichero origen tiene que estar cerrado y para que
te hagas una idea contiene una matriz de unas 15 ó 16 columnas y aprox.
15.000 filas. No tiene fórmulas, sólo contiene datos.


causas:
- mantener cerrado tu fichero de origen y que este contenga "sus


formulas" (muchas ?, complicadas ?, ???)

Descartado por la explicación anterior.

- que estes haciendo "unas cuantas" (re)selecciones de celdas para dep


ositar una formula (igual ?) en cada una

La macro está contenida en una plantilla que tiene muchas formulas pero
ninguna (e insisto en esto) es un vínculo hacía otras matrices y/o
ficheros externos. Los datos que es necesario "importar" se obtienen
precisamente mediante la macro y te puedo asegurar que únicamente había
3 valores diferentes que se obtenían de este modo cuando me surgió el
problema.

Para que sea más sencillo de explicar, piensa que de un producto
necesito obtener de otra tabla mediante la macro su (1)precio, (2)precio
de coste, (3)lugar en el almacen. Estos datos y otros son los que están
contenidos en el fichero origen y mediante la macro los "importaba" a la
plantilla.

Basicamente cuando la ejectuba funcionaba perfectamente con el (1)precio
pero cuando trataba de importa el (2)precio de coste me aparecía la
ventana con el error.

- seguramente se me podrian ocurrir unas tantas mas, el temor seria las


que NO se me ocurran :))

De esto no me cabe ninguna duda :D


soluciones ?:
- evitar (re)selecciones de celdas (en la mayoria de los casos no son


necesarias)

Creo que no es el caso.

- inhibir la actualizacion de la pantalla y poner a la aplicacion en


modo de recalculo manual (al inicio de la macro)

Puedo probarlo pero me parece que no van por ahí los tiros. El error
aparece duarante la ejecución de la macro y básicamente estaba en su
fase inicial.

- depositar una sola formula (quiza por grupo de filas o columnas) y


utilizar un "auto-relleno" para el resto de las celdas

Sólo son 3 valores y los 3 son "conceptos" o variables diferentes.

- restaurar el modo de recalculo a automatico (al finalizar la macro)



Como decía anteriormente lo probaré.

- posblemente otras mas (si se pudieran conocer los suficientes deta


lles "reales")

Mi mente está puesta en el archivo origen, tengo la convicción de que es
el causante del problema. Hay un dato que quizás sea importante y que no
he comentado antes, si hago un "paste&copy" de los datos del archivo
origen y los traslado a otro libro nuevo lo que ocurre es que puedo
abrir y cerrar el libro sin que me muestre ningún error.

Si en la macro cambio el fichero origen a este último que acabo de crear
y la ejecuto lo que sucede es que la macro se interrumpe cuando trata
de importar el 2º dato (esto siempre es así)y me muestra el error.

A partir de ese momento si abro el fichero origen y trato de cerrarlo me
aparece la ventana con el mensaje de error (el mismo que cuando ejecuto
la macro) independientemente de que el fichero que contiene la macro
esté abierto o cerrado.

Es un poco enrevesado pero por lo menos he encontrado una solución
válida que es la que comenté en el anterior post. Ahora tengo 3 ficheros
origen más pequeños (por si lo estabas pensando descarta el tamaño del
fichero como posible causa del problema, no llega a los 5 Mb :D)y ya no
me aparece ningún error cuando ejecuto la macro.

espero que algo de lo anterior te sirva (al menos) como base para


buscar/encontrar causas y soluciones ;)

Por supuesto que me sirve, muchísimas gracias por tu ayuda y por la
labor que haces en estas news.

saludos,
hector.



Un saludo!!!
Respuesta Responder a este mensaje
#10 Mk
02/10/2008 - 10:37 | Informe spam
Juan M escribió:
Hola,

Disculpas por no haberme dado cuenta que ya habías comentado el error, y
creo que de nuevo tienes razón el código no es el culpable de ese error y
donde presumiblemente está el error está en el otro libro si como dices

Algo que tampoco entiendo es que abro el fichero que contiene la fuente
de datos y aparentemente todo está ok pero al intentar cerrarlo me
aparece de nuevo la ventana con el mensaje anterior.





y al trocearlo de repente funciona, a mi me da que pensar que el problema
esté en el libro de origen de datos.

Sin saber como considera excel la captura de datos desde libros cerrados (no
se si sumará los recursos necesarios de un libro y otro y por eso llega a
mostrar el mensaje???), yo no tengo explicaciones que ofrecer para
solucionar el problema, lo lamento.

Espero que después de seguir/comentar con Héctor alguna opción llegues a una
solución satisfactoria sin tener que trocear el archivo.

Un saludo,
Juan



Muchas gracias por tu ayuda Juan, en realidad he encontrado una solución
"alternativa" perfectamente válida para mi objetivo así que me doy por
satisfecho.

En este caso tengo la percepción de que hay "algo" en el archivo origen
que causa todo el problema. El fichero origen no contiene macros, no
contiene fórmulas, simplemente contiene datos pero es muy probable que
haya sido obtenido de un listado muy basico y depurado mediante una macro.

Saludos!!!!

Mk



"Mk" escribió
Juan M escribió:
Hola,


Hola!

En tanto regresa Héctor, te comento.
Creo que llevas razón, las columnas que estás indicando son completas y
en el caso

\FY 09\[BAYPA.xls]Todos pvp'!C1:C11,11,0)"


te refieres al rango $A:$K, para buscar en la columna K,

En cuento al error, podrías indicar cual es el error que resulta?

Un saludo,
Juan


El error que me aparecía siempre era el mismo, cuando empezaba a
ejecutarse la macro se me aparecía una ventana en la pantalla con el
siguiente mensaje:

"Recursos insuficientes. Seleccione menos datos o cierre aplicaciones."

Ya lo he explicado en mi post inicial y después de indagar un poco y hacer
muchísimas pruebas he concluido que el error no está en el código de la
macro, el error está oculto de algún modo en el archivo origen.

Lo he troceado en otros 3 ficheros diferentes y ahora funciona
correctamente.

Muchas gracias por tu ayuda.

Un saludo.

Mk




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida