[RESUELTO] Buscar todos los caracteres y pintar

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

[RESUELTO] Buscar todos los caracteres y pintar

Mensaje por physic »

Saludos ,

sigue el archivo adjunto de LibreOffice y el archivo de Excel .

en el archivo excel tiene una macro de vba que busca en la columna "A" de la hoja de cálculo 1 todos los caracteres que se enumeran en la columna "B" de la hoja de cálculo 2 .

Si se encuentra en la columna "A" de la hoja de cálculo 1 los caracteres que están en la columna "B" de la hoja de cálculo 2, entonces pinta de color rojo .

es necesario convertir la macro vba de excel, para funcionar en LibreOffice, la macro debe ejecutar la misma operación en LibreOffice .


abrazos amigos .
Adjuntos
buscar caracteres.xls
(42.5 KiB) Descargado 262 veces
buscar caracteres.ods
(18.42 KiB) Descargado 275 veces
Última edición por physic el Mié Dic 26, 2018 8:30 pm, editado 1 vez en total.
LibreOffice 5.4.4.2 >>> Windows 7
mriosv
Mensajes: 2334
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Buscar todos los caracteres y pintar

Mensaje por mriosv »

Puedes hacerlo con formato condicional sin necesidad de macros

Ejemplo añadiendo formato condicional.
buscar caracteres.ods
(16.38 KiB) Descargado 279 veces
Ten en cuenta que dependiendo de la versión de LibreOffice, si lo guardas en formato excel tendrás que modificar la fórmula eliminando el punto delante de los asteriscos, pues los ficheros excel se abririan por defecto utilizando comodines en lugar de expresiones regulares.
https://wiki.documentfoundation.org/Rel ... th_ODF_1.2
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: Buscar todos los caracteres y pintar

Mensaje por physic »

saludos sr. mriosv ,

                gracias por la ayuda .

                su solución inicial es buena, resuelve la situación para encontrar los caracteres de la hoja de cálculo 2 .

                pero estoy desarrollando un proyecto de automatización, así que tengo que resolver este problema con la macro .

                sin embargo, su idea es buena, puede ayudar a otros con un problema parecido .


abrazos amigo .
LibreOffice 5.4.4.2 >>> Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Buscar todos los caracteres y pintar

Mensaje por fornelasa »

Mira la misma macro VBA con unas ligeras correcciones y creo funciona.
Saludos.
Adjuntos
buscar caracteres.ods
Buscar caracteres.
(14.96 KiB) Descargado 286 veces
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!
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: Buscar todos los caracteres y pintar

Mensaje por physic »

[Resuelto]

              muchas gracias por su ayuda sr. fornelasa , funciona perfecto . :bravo:

              buenas fiestas . :super:


abrazo amigo .
LibreOffice 5.4.4.2 >>> Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: [Resuelto] Buscar todos los caracteres y pintar

Mensaje por fornelasa »

Esta sería la versión OooBasic de Calc

Código: Seleccionar todo

Sub Codigolocalizar()
            doc = ThisComponent
           hoja = doc.Sheets.getByName("Planilha2")     
         cursor = hoja.createCursorByRange(hoja.getCellRangeByName("B1"))            
         cursor.collapseToCurrentRegion 
          hoja1 = doc.Sheets.getByName("Planilha1")     
        cursor1 = hoja1.createCursorByRange(hoja1.getCellRangeByName("A1"))            
        cursor1.collapseToCurrentRegion    
     For vLinha = 1 To cursor1.getRangeAddress.EndRow
        vCodigo = hoja.getCellByPosition(1, vLinha).String
     If vCodigo = "" Then                 
        Exit Sub
     End If                     
    For vLinha2 = 1 To cursor1.getRangeAddress.EndRow
        If hoja1.getCellByPosition(0, vLinha2).String = "" Then Exit For
        If hoja1.getCellByPosition(0, vLinha2).String Like "*" & vCodigo & "*" Then
           hoja1.getCellByPosition(0, vLinha2).CharColor  = 16711680
           hoja1.getCellByPosition(0, vLinha2).CharWeight = com.sun.star.awt.FontWeight.BOLD
        End If
     Next
     Next     
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!
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: [Resuelto] Buscar todos los caracteres y pintar

Mensaje por physic »

se quedó perfecto ! :bravo: :bravo: :bravo:

muchas gracias . :super:
LibreOffice 5.4.4.2 >>> Windows 7
Responder