[RESUELTO]buscar un valor y copiarlo junto con su rango
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
[RESUELTO]buscar un valor y copiarlo junto con su rango
Tengo cinco vendedores los cuales se miden diariamente de acuerdo a sus ventas. El archivo de las ventas me lo envian diariamente y el mismo está organizado de forma vertical. En la fila 1 está el vendedor 1, en la fila 2 el producto 1, en la fila 2 el producto 2, en la fila 3 el vendedor 2, en la fila 4 el producto 1, en la fila 5 el producto 2, etc.
Todos los vendedores deben vender los mismos productos pero no todos los dias los vendedores venden los mismos productos. De manera que no siempre la fila del vendedor va a ser la misma ni tampoco van a aparecer todos los productos. Quiere decir que este rango es variable y de forma vertical.
Necesito saber como puedo hacer una macro que separe la información por vendedor en hojas separadas. Lo digo es porque tengo una hoja en la cual pego la información del dia y debo coger vendedor por vendedor y pasar eso a otra hoja.
Me es dificil en el sentido que el vendedor no siempre va estar en la misma fila pues esto depende de las ventas de los otros.
Utilice la funcion coincidir anidada con un desref pero el problema es que el pivote cambia siempre. Por eso cree nuevas hojas y copie en cada hoja el vendedor para que el pivote de la funcion desref fuera el mismo.
Por eso quiero automatizar ese copie y pegue que me toca hacer todos los dias.
Gracias,
Todos los vendedores deben vender los mismos productos pero no todos los dias los vendedores venden los mismos productos. De manera que no siempre la fila del vendedor va a ser la misma ni tampoco van a aparecer todos los productos. Quiere decir que este rango es variable y de forma vertical.
Necesito saber como puedo hacer una macro que separe la información por vendedor en hojas separadas. Lo digo es porque tengo una hoja en la cual pego la información del dia y debo coger vendedor por vendedor y pasar eso a otra hoja.
Me es dificil en el sentido que el vendedor no siempre va estar en la misma fila pues esto depende de las ventas de los otros.
Utilice la funcion coincidir anidada con un desref pero el problema es que el pivote cambia siempre. Por eso cree nuevas hojas y copie en cada hoja el vendedor para que el pivote de la funcion desref fuera el mismo.
Por eso quiero automatizar ese copie y pegue que me toca hacer todos los dias.
Gracias,
Última edición por jhonfredy el Vie Abr 15, 2016 6:03 pm, editado 1 vez en total.
OpenOffice 3.1 en Windows Vista
Re: buscar un valor y copiarlo junto con su rango en otra ho
Obtendramos mejores respuesta si anexas un archivo detallando todo esto... así no obligas a nadie a inventar o imaginarse lo que estas planteando...
Por otra parte, parece que podrías reimplementar tu archivo de ventas para mejorar el proceso...
Si tienes bases de programación es sencillo copiar y pegar datos, todo esta ya documentado: https://wiki.openoffice.org/wiki/ES/Man ... ndoConCalc
Saludos
Por otra parte, parece que podrías reimplementar tu archivo de ventas para mejorar el proceso...
Si tienes bases de programación es sencillo copiar y pegar datos, todo esta ya documentado: https://wiki.openoffice.org/wiki/ES/Man ... ndoConCalc
Saludos
______________________________________________
"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: buscar un valor y copiarlo junto con su rango en otra ho
Adjunto el archivo que diseñe. En la hoja ventas están los datos que a diario actualizo desde la base de datos. El orden de esta hoja no lo puedo cambiar. En la segunda hoja (edgar) es donde coloco los datos de la hoja ventas que corresponde a ese vendedor. Esto es lo que quiero colocar con macro, los datos de la hoja edgar.
El problema es que si Lilia que aparece en la hoja ventas B14 no vende baterias automotrices, todas las filas se corren hacia arriba y por ende la posicion de edgar ya no va a ser B90 sino B74. Ahi es donde veo el problema pues esos rangos son variables.
Los datos de lo hoja ventas los cambio todos los dias y la idea es que cuando pegue lo correspondiente al dia, la hoja edgar se actualice.
Gracias,
El problema es que si Lilia que aparece en la hoja ventas B14 no vende baterias automotrices, todas las filas se corren hacia arriba y por ende la posicion de edgar ya no va a ser B90 sino B74. Ahi es donde veo el problema pues esos rangos son variables.
Los datos de lo hoja ventas los cambio todos los dias y la idea es que cuando pegue lo correspondiente al dia, la hoja edgar se actualice.
Gracias,
- Adjuntos
-
- SEGUIMIENTO_VENDEDORESA8 (5).xls
- adjunto para copiar datos con rangos variables
- (116.5 KiB) Descargado 295 veces
OpenOffice 3.1 en Windows Vista
Re: buscar un valor y copiarlo junto con su rango en otra ho
el archivo anexado es un archivo de Excel sobre el cual no damos soporte, por favor, reemplazalo por un archivo ODS... gracias
¿viste el enlace que te proporcione?
¿viste el enlace que te proporcione?
______________________________________________
"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: buscar un valor y copiarlo junto con su rango en otra ho
Cordial saludo,
Adjunto el archivo en .ods.
Gracias,
Adjunto el archivo en .ods.
Gracias,
- Adjuntos
-
- SEGUIMIENTO_VENDEDORESA8.ods
- (39.61 KiB) Descargado 273 veces
OpenOffice 3.1 en Windows Vista
Re: buscar un valor y copiarlo junto con su rango en otra ho
Buen dia para todos,
He estado trabajando sobre el tema del asunto, y tengo una primera aproximación en cuanto a buscar un valor. Ahora necesito copiar ese valor buscado. Eso no lo he podido hacer. Alguien me puede ayudar? Escribo el código. Favor que la respuesta sea sobre este ejemplo y ya no sobre el adjunto. Si puedo saber como modifico este código, lo demás lo puedo hacer yo. Gracias:
COLUMNA B
1 Herminio Perez
2 Eufrasia Martinez
3 Ambrosio Rodriguez
4 Eleuterio Gonzalez
5 Rufino Martin
Sub buscarycopiar()
Dim oHojaActiva As Object
Dim oBuscarEn As Object
Dim oEncontrado As Object
Dim oSD As Object
Dim oDestino As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
oBuscarEn = oHojaActiva.getCellRangeByName("B1:B5")
oSD = oHojaActiva.createSearchDescriptor
oSD.setSearchString("Rufino")
oEncontrado = oBuscarEn.findAll(oSD)
ThisComponent.getCurrentController.select(oEncontrado)
End Sub
He estado trabajando sobre el tema del asunto, y tengo una primera aproximación en cuanto a buscar un valor. Ahora necesito copiar ese valor buscado. Eso no lo he podido hacer. Alguien me puede ayudar? Escribo el código. Favor que la respuesta sea sobre este ejemplo y ya no sobre el adjunto. Si puedo saber como modifico este código, lo demás lo puedo hacer yo. Gracias:
COLUMNA B
1 Herminio Perez
2 Eufrasia Martinez
3 Ambrosio Rodriguez
4 Eleuterio Gonzalez
5 Rufino Martin
Sub buscarycopiar()
Dim oHojaActiva As Object
Dim oBuscarEn As Object
Dim oEncontrado As Object
Dim oSD As Object
Dim oDestino As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
oBuscarEn = oHojaActiva.getCellRangeByName("B1:B5")
oSD = oHojaActiva.createSearchDescriptor
oSD.setSearchString("Rufino")
oEncontrado = oBuscarEn.findAll(oSD)
ThisComponent.getCurrentController.select(oEncontrado)
End Sub
OpenOffice 3.1 en Windows Vista
Re: buscar un valor y copiarlo junto con su rango en otra ho
Un ejemplo:
* De acuerdo al archivo que subiste.
* Asumo que la hoja "edgar" está vacía y existe.
* De acuerdo al archivo que subiste.
* Asumo que la hoja "edgar" está vacía y existe.
Código: Seleccionar todo
sub BuscarCopiar
dim args1(2) as new com.sun.star.beans.PropertyValue
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(1).Name = "By"
args1(1).Value = 1
args1(2).Name = "Sel"
args1(2).Value = false
tDoc = ThisComponent.CurrentController
oSheet = tDoc.ActiveSheet
tDoc.Select(oSheet.GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
Edgar = ThisComponent.Sheets.GetByName("edgar")
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = "EDGAR FRANCISCO SOTO"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
inicio = (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
dato = ThisComponent.GetCurrentSelection.String
args1(0).Value = Trim(dato)
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
fin = (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
rango = oSheet.GetCellRangeByName("A"+inicio+":K"+fin)
tDoc.Select(Rango)
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
tDoc.Select(Edgar.GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
tDoc.Select(oSheet.GetCellRangeByName("A1"))
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = "EDGAR FRANCISCO SOTO"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
MsgBox "Hecho"
end sub
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: buscar un valor y copiarlo junto con su rango en otra ho
Gracias fornelasa, la macro que me diste busca el valor de Edgar y lo coloca en la hoja correspondiente. Solo quedo faltando que copie las lineas que siguen abajo de edgar:
Ejemplo
Valores que están en la hoja ventas
ColumnaB
Fila1 Lilia Ines Salazar
Fila2 Lapices
Fila3 Borradores
Fila4 Sacapuntas
Fila8 Edgar Francisco Soto
Fila9 Cuadernos
Fila10 Reglas
Fila11 Lapiceros
Fila12 Diana Pico
Fila13 Lapices
Fila14 Borradores
Lo que debe hacer la macro es buscar en la hoja ventas el nombre de Edgar Francisco Soto, copiar esa información en la hoja Edgar, que es lo que hizo con la macro,y además de eso copiar lo que sigue abajo de Edgar, osea la fila entera fila9, fila10 y fila11.
Quiere decir que en la hoja Edgar debe quedar
ColumnaA
Fila1 Edgar Francisco Soto
Fila2 Cuadernos
Fila3 Reglas
Fila4 Lapiceros
Recordar que la posición del rango varía pues depende de los items que incluya Llilia, algunas veces la posición de Edgar en la hoja ventas va a estar en la fila 8 pero otras veces puede estar en la fila15 o fila20 o fija10.
Recordar tambien que no puedo cambiar el orden en que están los vendedores
Gracias,
Ejemplo
Valores que están en la hoja ventas
ColumnaB
Fila1 Lilia Ines Salazar
Fila2 Lapices
Fila3 Borradores
Fila4 Sacapuntas
Fila8 Edgar Francisco Soto
Fila9 Cuadernos
Fila10 Reglas
Fila11 Lapiceros
Fila12 Diana Pico
Fila13 Lapices
Fila14 Borradores
Lo que debe hacer la macro es buscar en la hoja ventas el nombre de Edgar Francisco Soto, copiar esa información en la hoja Edgar, que es lo que hizo con la macro,y además de eso copiar lo que sigue abajo de Edgar, osea la fila entera fila9, fila10 y fila11.
Quiere decir que en la hoja Edgar debe quedar
ColumnaA
Fila1 Edgar Francisco Soto
Fila2 Cuadernos
Fila3 Reglas
Fila4 Lapiceros
Recordar que la posición del rango varía pues depende de los items que incluya Llilia, algunas veces la posición de Edgar en la hoja ventas va a estar en la fila 8 pero otras veces puede estar en la fila15 o fila20 o fija10.
Recordar tambien que no puedo cambiar el orden en que están los vendedores
Gracias,
OpenOffice 3.1 en Windows Vista
Re: buscar un valor y copiarlo junto con su rango en otra ho
No Entendí.
Lo de lápices cuadernos y no se que más ¿de donde los sacamos?
Para el caso de Edgar, en la hoja ventas (de acuerdo al archivo que subes), él tiene datos desde A90:I238 que la macro los pasa exactamente a la hoja Edgar tal cual. Si los datos de Edgar estuvieran en otro rango entonces la macro los pasa automáticamente también.
Luego dices,
¿Seguro que probaste la macro que envié?
Podrias aclarar má el tema en base al archivo que subiste o reenviar uno nuevo
Saludos, Federico.
Lo de lápices cuadernos y no se que más ¿de donde los sacamos?
Para el caso de Edgar, en la hoja ventas (de acuerdo al archivo que subes), él tiene datos desde A90:I238 que la macro los pasa exactamente a la hoja Edgar tal cual. Si los datos de Edgar estuvieran en otro rango entonces la macro los pasa automáticamente también.
Luego dices,
Si los datos de Edgar están en A90:I238 (terminan en la fila I238) ..... ¿Qué tiene que ver la fila 9, 10 etc.?Lo que debe hacer la macro es buscar en la hoja ventas el nombre de Edgar Francisco Soto, copiar esa información en la hoja Edgar, que es lo que hizo con la macro,y además de eso copiar lo que sigue abajo de Edgar, osea la fila entera fila9, fila10 y fila11.
¿Seguro que probaste la macro que envié?
Podrias aclarar má el tema en base al archivo que subiste o reenviar uno nuevo
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: buscar un valor y copiarlo junto con su rango en otra ho
Cordial saludo fornelasa,
Nuevamente hice el proceso de correr la macro. Ahora si funciona excelente, tal como lo necesito.
Lo de los lapiceros era un ejemplo diferente donde explicaba el mismo proceso que requería, solo que en menor escala.
De ante mano mil gracias por su valiosa colaboración.
Doy por cerrado el tema. Inmediatamente lo reporto en ese estado.
Nuevamente hice el proceso de correr la macro. Ahora si funciona excelente, tal como lo necesito.
Lo de los lapiceros era un ejemplo diferente donde explicaba el mismo proceso que requería, solo que en menor escala.
De ante mano mil gracias por su valiosa colaboración.
Doy por cerrado el tema. Inmediatamente lo reporto en ese estado.
OpenOffice 3.1 en Windows Vista
Re: [RESUELTO]buscar un valor y copiarlo junto con su rango
Cordial saludo,
Me pueden explicar que hace este código paso a paso pues no estoy muy familiarizado con este tema:
sub BuscarCopiar
dim args1(2) as new com.sun.star.beans.PropertyValue
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(1).Name = "By"
args1(1).Value = 1
args1(2).Name = "Sel"
args1(2).Value = false
tDoc = ThisComponent.CurrentController
oSheet = tDoc.ActiveSheet
tDoc.Select(oSheet.GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
Edgar = ThisComponent.Sheets.GetByName("edgar")
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = "EDGAR FRANCISCO SOTO"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
inicio = (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
dato = ThisComponent.GetCurrentSelection.String
args1(0).Value = Trim(dato)
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
fin = (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
rango = oSheet.GetCellRangeByName("A"+inicio+":K"+fin)
tDoc.Select(Rango)
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
tDoc.Select(Edgar.GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
tDoc.Select(oSheet.GetCellRangeByName("A1"))
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = "EDGAR FRANCISCO SOTO"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
MsgBox "Hecho"
end sub
Me pueden explicar que hace este código paso a paso pues no estoy muy familiarizado con este tema:
sub BuscarCopiar
dim args1(2) as new com.sun.star.beans.PropertyValue
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(1).Name = "By"
args1(1).Value = 1
args1(2).Name = "Sel"
args1(2).Value = false
tDoc = ThisComponent.CurrentController
oSheet = tDoc.ActiveSheet
tDoc.Select(oSheet.GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
Edgar = ThisComponent.Sheets.GetByName("edgar")
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = "EDGAR FRANCISCO SOTO"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
inicio = (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
dato = ThisComponent.GetCurrentSelection.String
args1(0).Value = Trim(dato)
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
fin = (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
rango = oSheet.GetCellRangeByName("A"+inicio+":K"+fin)
tDoc.Select(Rango)
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
tDoc.Select(Edgar.GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
tDoc.Select(oSheet.GetCellRangeByName("A1"))
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = "EDGAR FRANCISCO SOTO"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
MsgBox "Hecho"
end sub
OpenOffice 3.1 en Windows Vista