|
NavegaciónInicio de sesión
Ya sé Excel,
En líneaEn este momento hay 0 usuarios y 1 invitado en línea.
|
Relleno Dinamico de CeldasBuenas Tardes, Tengo un problema porque siempre me llega un archivo con una lista de numeros de productos ( que varian entre 30 y 60 mil codigos). El problema es que quiero generar un macro que automaticamente a traves de un vlookup, busque el nombre de esos productos; pero quiero que copie y pegue la formula del vlookup pero en la cantidad exacta de celdas que trae el archivo. Por ejemplo si me llegan el archivo con 30000 codigos; quiero que haga 30000 vlookups y si me llegan 50000 codigos que automaticamente haga unos 50000 vlookups. Agradezco de antemano tu ayuda con esto ya que me sera de gran utilidad. Salu2. Edú.
Enviado por eduboca82 el 3 Enero, 2008 - 01:25. Re: AutorrellenarEnviado por eduboca82 el 3 Enero, 2008 - 18:10.
Paco, Lamentablemente yo cuento con la version 2003 de Excel, asi que descarto la primera opcion. En cuanto a la segunda posibilidad es la que estoy tratando de aplicar pero el problema es que en el argumento Destination no puedo indicar un rango fijo (por ej A1:A30000) porque nunca se cuanto va a ser la cantidad exacta de codigos que voy a recibir. Te agradezco de nuevo toda tu ayuda ya que son de mucha utilidad. Edú
![]() Re: Relleno Dinamico de CeldasEnviado por pacomegia el 4 Enero, 2008 - 09:35.
Piensa en cómo seleccionarías todas las celdas con código a mano. Esto, en una macro, se haría así: Luego puedes utilizar esta selección para obtener el rango de destino, bien mediante Offset, como te indicaba antes, o bien obteniendo el número de filas seleccionadas para utilizarlo en un bucle, por ejemplo un saludo. ------ La potencia sin control no sirve de nada.
Re: Relleno Dinamico de CeldasEnviado por eduboca82 el 4 Enero, 2008 - 22:06.
Muchisimas gracias Paco!!.. ya lo pude hacer como me dijiste con el Offset... la verdad que no sabia como funcionaba ese comando pero ya lo pude aplicar y la verdad que me sirvio muchisimo... Una vez mas te agradezco tu apoyo y como ultima molestia, te pregunto si habra alguna forma de ocultar todos los calculos que realiza la macro para que no se vea todo el proceso mientras corre la misma (por ej: cuando calcula los vlookups o cuando inserta subtotales,abre o cierra libros, etc etc); porque en mi maquina la macro dura como 10 minutos. SAlu2!! Edú
![]() ScreenUpdatingEnviado por pacomegia el 6 Enero, 2008 - 17:50.
para que todo el proceso de la macro no haga que Excel empiece a dar pantallazos, y para que la macro se ejecute más deprisa, puedes desactivar la actualización de la pantalla durante la ejecución de la misma. ponlo al principio de tu macro y verás qué diferencia. un saludo. ------ La potencia sin control no sirve de nada.
|
EncuestaLo más vistoTemas nuevosÚltimos Envíos al blog
|
Autorrellenar
Si utilizas la versión 2007, tienes la posibilidad de que Excel considere todos los datos como un conjunto, convirtiéndolo en lo que llama una tabla.
Si los datos son una tabla y añades una fórmula en una celda a la derecha, esta fórmula se aplica a los 30000 valores que componen la tabla. Si modificas la fórmula, se modifica para todos los datos.
En la versión 2003 hay algo parecido, que entoces llamaron "lista", pero esto de las fórmulas no funciona automáticamente como en la 2007.
Otra posibilidad es el autorrelleno de fórmulas.
Si escribes el valor en la primera celda, a la izquierda de donde tienes los datos, y haces doble clic sobre la esquina inferior derecha de la celda (cuando el puntero del ratón toma la forma de una cruz negra), la fórmula se extiende hacia abajo a todas las celdas que tengan información a su izquierda.
Esto mismo se puede programar en una macro con el método .AutoFill aplicado a la celda que contiene la fórmula a extender, y con un argumento Destination que indique el rango al que se va a aplicar la fórmula.
Sólo tendrías que detectar el tamaño del rango al que aplicar la fórmula, por ejemplo, si en la primera columna tienes la relación de códigos, con estas instrucciones seleccionarías todos los códigos:
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Si la fórmula la quieres aplicar dos columnas hacia la derecha, el rango que quieres rellenar con fórmulas puede ser:
Selection.Offset(0,2)
Espero que estas ideas te sean de utilidad.
------
La potencia sin control no sirve de nada.
Power is nothing without control.