Buen día tengo un problema porque necesito que me copie los datos de hacia un balance especificamente hacia la columna presupuesto como lo explico en el adjunto, pero que lo hale de la hoja 4 de acuerdo al mes que yo escriba.
Agradeciendo su ayuda. talvez no este bien explicado pero con el ejemplo lo van a poder ver.
Copiar Datos de una rango(hoja4) a otro rango (hoja1)
Copiar Datos de una rango(hoja4) a otro rango (hoja1)
- Adjuntos
-
- Prueba Real.ods
- (21.82 KiB) Descargado 331 veces
Re: Copiar Datos de una rango(hoja4) a otro rango (hoja1)
Hola a todos...
Para copiar rangos usas el método copyRange presente en cualquier hoja de calculo, su sintaxis es:
Hoja.copyRange( Destino As CellAddress, Origen As CellRangeAddress)
Primer ejemplo:
Para copiar en una hoja diferente, solo tienes que establecer el destino correctamente en dicha hoja, el siguiente ejemplo, copiamos el rango B2:D5 de la ultima hoja del documento a la celda A1 de la primera:
Texto y ejemplos, extraídos de mis apuntes, creo que te resolverían bastantes dudas de macros en Calc, que es lo tengo más avanzado...
http://www.universolibre.org/archivos/A ... oBasic.odt
Saludos a todos...
Mauricio
Para copiar rangos usas el método copyRange presente en cualquier hoja de calculo, su sintaxis es:
Hoja.copyRange( Destino As CellAddress, Origen As CellRangeAddress)
Primer ejemplo:
Código: Seleccionar todo
Sub CopiarRangos1()
Dim oHojaActiva As Object
Dim oOrigen As Object
Dim oDestino As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
'Rango a copiar
oOrigen = oHojaActiva.getCellRangeByName( "A1:B3" )
'Celda destino
oDestino = oHojaActiva.getCellRangeByName( "D10" )
'Copiamos el rango
oHojaActiva.copyRange( oDestino.getCellAddress(), oOrigen.getRangeAddress() )
End Sub
Código: Seleccionar todo
Sub CopiarRangos3()
Dim oHojaOrigen As Object
Dim oHojaDestino As Object
Dim oOrigen As Object
Dim oDestino As Object
oHojaOrigen = ThisComponent.getSheets().getByIndex( ThisComponent.getSheets().getCount() - 1 )
oHojaDestino = ThisComponent.getSheets().getByIndex( 0 )
'Rango a copiar
oOrigen = oHojaOrigen.getCellRangeByName( "B2:D5" )
'Celda destino
oDestino = oHojaDestino.getCellRangeByName( "A1" )
'Copiamos el rango
oHojaDestino.copyRange( oDestino.getCellAddress(), oOrigen.getRangeAddress() )
ThisComponent.getCurrentController().select( oDestino )
End Sub
http://www.universolibre.org/archivos/A ... oBasic.odt
Saludos a todos...
Mauricio
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Copiar Datos de una rango(hoja4) a otro rango (hoja1)
Adjunte un archivo que demuestra una solución usando la función BUSCARV. Los textos en Hoja1 Columna B y Hoja4 Columna A tienen que ser idénticos. No eran idénticos en el archivo original.
De la Ayuda:
BUSCARV
Búsqueda vertical con referencia a las celdas adyacentes a la derecha Esta función comprueba si un valor específico esta contenido en la primera columna de una matriz. La función devuelve el valor en la misma fila de la columna llamada por el Índice. Si el parámetro Ordenar se omite o es establecido como VERDADERO o uno, se asume que los datos están ordenados de manera ascendente. En este caso, si el Criterio de búsqueda no es encontrado, el último valor que es más pequeño que el criterio será devuelto. Si Ordenar es establecido como FALSO o cero, una concordancia exacta debe ser encontrada, de otro modo el Error: Valor no disponible será el resultado. Así, con el valor cero de los datos no tiene que ser ordenados de manera ascendente.
La función de búsqueda admite expresiones regulares. Puede escribir "tod.*", por ejemplo, para buscar la primera aparición de "tod" seguido de cualquier carácter. Si desea buscar texto que también sea una expresión regular, cada carácter debe ir precedido de una doble barra inversa (\). Puede activar y desactivar la evaluación automática de expresión regular en Herramientas - Opciones - StarOffice Calc - Calcular.
Sintaxis
=BUSCARV(CriteriodeBúsqueda; Matriz; Índice; Ordenar)
CriteriodeBúsqueda es el valor busca para la primer columna de la matriz.
Matriz es la referencia, la cual está compuesta por al menos dos columnas.
Índice es el número de la columna en la matriz que contiene el valor a devolver. La primera columna tiene el número 1.
Ordenar es un parámetro opcional que indica si la primera columna en la matriz es ordenada de manera ascendente. Ingrese el valor Booleano FALSO o cero si la primera columna no esta ordenada de manera ascendente. Las columnas ordenadas pueden ser buscadas más rápido y la función siempre devuelve un valor, incluso si el valor de búsqueda no fue acompañado, si esta entre el valor más alto y más bajo de la lista ordenada. En las listas sin ordenar, la búsqueda del valor debe corresponder exactamente. De lo contrario, la función devolverá este mensaje: Error: Valor no disponible .
Manejo de celdas vacias
Ejemplo
Desea introducir el número de un plato en el menú en la celda A1, y el nombre del plato para aparezca como texto en las celdas vecinas (B1). El Número para el Nombre asignado esta contenido en la matriz D1:E100. D1 contiene 100, E1 contiene el nombre Sopa de vegetales, y así sucesivamente, para 100 elementos del menú. Los números en la columna D son ordenados de manera ascendente; por lo tando, el parámetro opcional Ordenar no es necesario.
Introduzca la fórmula siguiente en B1:
=BUCARV(A1;D1:E100;2)
Al introducir un número en A1, en B1 aparece rápidamente el texto contenido en la segunda columna de la referencia D1:E100. Si se introduce un número inexistente, el texto que aparece es el correspondiente al número inferior más cercano. A fin de que esto no ocurra, hay que introducir un último parámetro FALSO en la fórmula de forma que en caso de introducir un número inexistente la función produzca como resultado un mensaje de error.
De la Ayuda:
BUSCARV
Búsqueda vertical con referencia a las celdas adyacentes a la derecha Esta función comprueba si un valor específico esta contenido en la primera columna de una matriz. La función devuelve el valor en la misma fila de la columna llamada por el Índice. Si el parámetro Ordenar se omite o es establecido como VERDADERO o uno, se asume que los datos están ordenados de manera ascendente. En este caso, si el Criterio de búsqueda no es encontrado, el último valor que es más pequeño que el criterio será devuelto. Si Ordenar es establecido como FALSO o cero, una concordancia exacta debe ser encontrada, de otro modo el Error: Valor no disponible será el resultado. Así, con el valor cero de los datos no tiene que ser ordenados de manera ascendente.
La función de búsqueda admite expresiones regulares. Puede escribir "tod.*", por ejemplo, para buscar la primera aparición de "tod" seguido de cualquier carácter. Si desea buscar texto que también sea una expresión regular, cada carácter debe ir precedido de una doble barra inversa (\). Puede activar y desactivar la evaluación automática de expresión regular en Herramientas - Opciones - StarOffice Calc - Calcular.
Sintaxis
=BUSCARV(CriteriodeBúsqueda; Matriz; Índice; Ordenar)
CriteriodeBúsqueda es el valor busca para la primer columna de la matriz.
Matriz es la referencia, la cual está compuesta por al menos dos columnas.
Índice es el número de la columna en la matriz que contiene el valor a devolver. La primera columna tiene el número 1.
Ordenar es un parámetro opcional que indica si la primera columna en la matriz es ordenada de manera ascendente. Ingrese el valor Booleano FALSO o cero si la primera columna no esta ordenada de manera ascendente. Las columnas ordenadas pueden ser buscadas más rápido y la función siempre devuelve un valor, incluso si el valor de búsqueda no fue acompañado, si esta entre el valor más alto y más bajo de la lista ordenada. En las listas sin ordenar, la búsqueda del valor debe corresponder exactamente. De lo contrario, la función devolverá este mensaje: Error: Valor no disponible .
Manejo de celdas vacias
Ejemplo
Desea introducir el número de un plato en el menú en la celda A1, y el nombre del plato para aparezca como texto en las celdas vecinas (B1). El Número para el Nombre asignado esta contenido en la matriz D1:E100. D1 contiene 100, E1 contiene el nombre Sopa de vegetales, y así sucesivamente, para 100 elementos del menú. Los números en la columna D son ordenados de manera ascendente; por lo tando, el parámetro opcional Ordenar no es necesario.
Introduzca la fórmula siguiente en B1:
=BUCARV(A1;D1:E100;2)
Al introducir un número en A1, en B1 aparece rápidamente el texto contenido en la segunda columna de la referencia D1:E100. Si se introduce un número inexistente, el texto que aparece es el correspondiente al número inferior más cercano. A fin de que esto no ocurra, hay que introducir un último parámetro FALSO en la fórmula de forma que en caso de introducir un número inexistente la función produzca como resultado un mensaje de error.
- Adjuntos
-
- Prueba Real FJCC.ods
- (13.54 KiB) Descargado 338 veces
-
- Mensajes: 261
- Registrado: Lun Dic 01, 2008 7:59 am
- Ubicación: Pereira, Colombia
Re: Copiar Datos de una rango(hoja4) a otro rango (hoja1)
Saludos: En ésta oportunidad quiero presentar el uso de la función de Calc Buscar, para poder hacerla trabajar hay de reorganizar el archivo de la hoja 4 y lo hago en la Hoja3 cambiando las filas a columnas y viceversa El manejo de la función Buscar se efectúa en la columna G y la macro para reorganizar un archivo está como una macro anexa al archivo.
Nota: La hoja de Calc desde donde Ud llama la función puede tener el formato y los campos en diferentes disposiciones, Encabezado, campos ligados espacios en las filas, pero en la hoja donde Ud. Busca los datos debe estar ordenada, por la columna que busca, y solo permite que tenga el nombre de la columnas.
Nota: La hoja de Calc desde donde Ud llama la función puede tener el formato y los campos en diferentes disposiciones, Encabezado, campos ligados espacios en las filas, pero en la hoja donde Ud. Busca los datos debe estar ordenada, por la columna que busca, y solo permite que tenga el nombre de la columnas.
- Adjuntos
-
- Prueba Real FJCCNLB.ods
- (19.4 KiB) Descargado 367 veces
Néstor
S,O. Ubuntu 15 AOO_4.0.1
S,O. Ubuntu 15 AOO_4.0.1
Re: Copiar Datos de una rango(hoja4) a otro rango (hoja1)
Muchas Gracias por su ayuda, estoy probando las soluciones que ustedes me brindan, cualquier cosa se las consulto nuevamente.