Alaska Software Inc. - Como buscar en un rango de Excel
Username: Password:
AuthorTopic: Como buscar en un rango de Excel
RIBO SALAMANCAComo buscar en un rango de Excel
on Thu, 14 Jan 2016 10:45:01 -0500
Hola todos

Alguien que me de una mano con esto:
Estoy tratando de buscar en un rango de celdas en excel pero no logro 
extraer el contenido

LOCAL oRange, nRow, nCol

******* Esta funciona bien pero busca en toda la hoja la primera ocurrencia
oRange := oSheet:Find("01")

******* Esta linea intento busca en el rango especificado per me da error 
Type mismatch
oRange := oSheet:Find("01","B9:B17","D9:D17")   Tengo error -2147352571 
"Type mismatch."

Cual puede ser mi error?
En donde encuentro buena información para estudiar?


nRow := oRange:row
nCol := oRange:column

******* Obtengo el dato de la celda encontrada
xData := oSheet:Cells(nRow,nCol):Value

Saludos y gracias.

on
Jose Antonio Diego KerejeRe: Como buscar en un rango de Excel
on Sun, 17 Jan 2016 18:56:44 +0100
Segundo intento.


Test.zip
RIBO SALAMANCARe: Como buscar en un rango de Excel
on Sun, 17 Jan 2016 13:34:02 -0500
Maravilloso!!!!
Funciona perfecto y era lo que necesitaba.

Muchas gracias Jose Antonio.

"Jose Antonio Diego Kereje" escribió en el mensaje de 
noticias:4fafa3d2$47a465ab$3a79a@news.alaska-software.com...

Segundo intento.
RIBO SALAMANCARe: Como buscar en un rango de Excel
on Wed, 20 Jan 2016 08:40:26 -0500
Jose Antonio
Tengo otra inquietud, tu ejemplo me sirve si tenemos un solo rango, pero 
necesito redefinir nuevos rangos como deshabilito uno y defino otro?

1er rango funciona perfecto
    nRow := nCol := 0
      oRange:= oSheet:range( 'A28', 'G56' )
      oCells:= oSheet:cells
      dbGoTop()
      DO WHILE !Eof()
         IF ( oCellRange:= oRange:find( 
StrZero(Val(('USOYESTR')->estrato),2) ) ) # nil

            nRow := oCellRange:row
            nCol := oCellRange:column

            oSheet:Cells(nRow,nCol+2):Value := Transform( 
FACTURADO->urbano,"9,999,999,999")
            oSheet:Cells(nRow,nCol+3):Value := Transform( 
FACTURADO->rural,"9,999,999,999")
            oSheet:Cells(nRow,nCol+4):Value := Transform( 
FACTURADO->acueduc,"9,999,999,999")
            oSheet:Cells(nRow,nCol+5):Value := Transform( 
FACTURADO->alcanta,"9,999,999,999")
            oSheet:Cells(nRow,nCol+6):Value := Transform( 
FACTURADO->aseo,"9,999,999,999")
         dbSkip()
      ENDDO

1do rango no hace la busqueda, parece ser que hay que deshacer el primer 
rango?
    nRow := nCol := 0
      oRange:= oSheet:range( 'A68', 'G76' )
      dbGoTop()
      DO WHILE !Eof()
         IF ( oCellRange:= oRange:find( 
StrZero(Val(('USOYESTR')->estrato),2) ) ) # nil

            nRow := oCellRange:row
            nCol := oCellRange:column

            oSheet:Cells(nRow,nCol+2):Value := Transform( 
FACTURADO->urbano,"9,999,999,999")
            oSheet:Cells(nRow,nCol+3):Value := Transform( 
FACTURADO->rural,"9,999,999,999")
            oSheet:Cells(nRow,nCol+4):Value := Transform( 
FACTURADO->acueduc,"9,999,999,999")
            oSheet:Cells(nRow,nCol+5):Value := Transform( 
FACTURADO->alcanta,"9,999,999,999")
            oSheet:Cells(nRow,nCol+6):Value := Transform( 
FACTURADO->aseo,"9,999,999,999")
         ELSE
            MsgBo( ' No se hallo el estrato')
         END IF
        dbSkip()
      ENDDO

Muchas Gracias
Quedo atento
Ribo Salamanca intento.
Jose Antonio Diego KerejeRe: Como buscar en un rango de Excel
on Wed, 20 Jan 2016 23:40:57 +0100
Hola Ribo:

> Tengo otra inquietud, tu ejemplo me sirve si tenemos
> un solo rango, pero necesito redefinir nuevos rangos
> como deshabilito uno y defino otro?

Puedes definir tantos rangos como quieras o necesites, lo puedes comprobar 
en el ejemplo que adjunto.
En tu caso deberás revisar los datos de origen de la hoja de Excel y 
comprobar que los de búsqueda son correctos para que ésta sea posible.

Saludos. Diego


Test.zip
RIBO SALAMANCARe: Como buscar en un rango de Excel
on Fri, 22 Jan 2016 15:38:50 -0500
Entendido José Antonio
Muchas gracias y un abrazo.

"Jose Antonio Diego Kereje" escribió en el mensaje de 
noticias:7c2ee122$2a3b742e$44819@news.alaska-software.com...

Hola Ribo:

> Tengo otra inquietud, tu ejemplo me sirve si tenemos
> un solo rango, pero necesito redefinir nuevos rangos
> como deshabilito uno y defino otro?

Puedes definir tantos rangos como quieras o necesites, lo puedes comprobar
en el ejemplo que adjunto.
En tu caso deberás revisar los datos de origen de la hoja de Excel y
comprobar que los de búsqueda son correctos para que ésta sea posible.

Saludos. Diego