Como cambiar rangos de datos en Macros?
Publicado por Sergio (3 intervenciones) el 19/05/2010 01:26:22
Hola Buenas,
Estoy programando unas macros utilizando la opción de grabar macro (excel 2007). La macro la estoy grabando empleando una matriz de digamos 1000 filas por 5 columnas.., grabo la macro con todo lo que quiero hacer; copiar columnas, hacer operaciones entre ellas, ordenar datos, etc etc, pero cuando miro el código me doy cuenta que cuando copias una formula de una columna y AL EXTENDERLA HASTA EL FINAL DE LA COLUMNA, en el código en Vba aparece perfectamente definido que la formula se deberá copiar hasta la fila nº1000, y claro mi intencion al grabar la macro y hago doble click en el extremo inferior de la celda a extender hasta el final de la columna es que la formula se prolonge exactamente hasta la misma longitud que tiene la columna de datos que tiene a la izquierda... para el caso que me ocupa no tengo problema proque funciona perfectamente, ¿pero que pasará cuando la matriz tenga por ejemplo 1500 filas, me extenderá las formulas solo hasta la la fila 1000?, ¿hay alguna forma de cambiar el código para que la formula a extender se extienda tantas posiciones como celdas tenga la columna de su izaquierda?.
Por otro lado me pasa exactamente lo mismo cuando copio rangos de datos, SELECCIONO Y COPIO TODA UNA HOJA ó UN GRUPO DE COLUMNAS, pero luego al mirar el código en vba veo que lo que ha hecho es copiar exactamente el rango de datos que estan ocupados en la hoja, o el rango de datos que estan ocupados en el rango de culumnas respectivamente... y al igual que en el caso anterior, para el ejemplo que me ocupa no tengo problema, pero cuando la hoja tenga más filas no me copiará todos los datos
Por último, me gustaría saber con que formato de archivo es mejor trabajar cuando se trabaja con muchos datos y macros, Compatibilidad con 2000-2003, Excel 2007, o Libro de excel habilitado para macros?. Lo pregunto más que nada por si ello pudiera influir en que el tiempo de proceso fuera más corto, porque algunas macros cuando extiendo determinadas formulas (p.e =countif() ) a un gran rango de datos, les cuesta un buen rato...
Os agradezco mucho vuestra ayuda, por favor tened en cuenta que de Vba voy muuuuy justito. Muchas gracias!!.
Sergio.
Estoy programando unas macros utilizando la opción de grabar macro (excel 2007). La macro la estoy grabando empleando una matriz de digamos 1000 filas por 5 columnas.., grabo la macro con todo lo que quiero hacer; copiar columnas, hacer operaciones entre ellas, ordenar datos, etc etc, pero cuando miro el código me doy cuenta que cuando copias una formula de una columna y AL EXTENDERLA HASTA EL FINAL DE LA COLUMNA, en el código en Vba aparece perfectamente definido que la formula se deberá copiar hasta la fila nº1000, y claro mi intencion al grabar la macro y hago doble click en el extremo inferior de la celda a extender hasta el final de la columna es que la formula se prolonge exactamente hasta la misma longitud que tiene la columna de datos que tiene a la izquierda... para el caso que me ocupa no tengo problema proque funciona perfectamente, ¿pero que pasará cuando la matriz tenga por ejemplo 1500 filas, me extenderá las formulas solo hasta la la fila 1000?, ¿hay alguna forma de cambiar el código para que la formula a extender se extienda tantas posiciones como celdas tenga la columna de su izaquierda?.
Por otro lado me pasa exactamente lo mismo cuando copio rangos de datos, SELECCIONO Y COPIO TODA UNA HOJA ó UN GRUPO DE COLUMNAS, pero luego al mirar el código en vba veo que lo que ha hecho es copiar exactamente el rango de datos que estan ocupados en la hoja, o el rango de datos que estan ocupados en el rango de culumnas respectivamente... y al igual que en el caso anterior, para el ejemplo que me ocupa no tengo problema, pero cuando la hoja tenga más filas no me copiará todos los datos
Por último, me gustaría saber con que formato de archivo es mejor trabajar cuando se trabaja con muchos datos y macros, Compatibilidad con 2000-2003, Excel 2007, o Libro de excel habilitado para macros?. Lo pregunto más que nada por si ello pudiera influir en que el tiempo de proceso fuera más corto, porque algunas macros cuando extiendo determinadas formulas (p.e =countif() ) a un gran rango de datos, les cuesta un buen rato...
Os agradezco mucho vuestra ayuda, por favor tened en cuenta que de Vba voy muuuuy justito. Muchas gracias!!.
Sergio.
Valora esta pregunta


0