FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Buscar un Valor en un Rango de Celda en EXCEL
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Buscar un Valor en un Rango de Celda en EXCEL
Posted: Tue Mar 17, 2015 12:38 PM

amigos nuevamente por aca, solicito su ayuda. como puedo pasar esto a fw

Public rango As String, valorbuscado As String

Sub Encontrarvalores()
Dim resultado As Range
Dim primerabusqueda As String
Dim contador As Double

Set resultado = Range(rango).Find(valorbuscado, , xlValues, xlWhole, xlByColumns, xlNext, False, , False)

If resultado Is Nothing Then
MsgBox "No se encontraron coincidencias."
Else
primerabusqueda = resultado.Address
Do
contador = contador + 1
resultado.Interior.ColorIndex = 10
resultado.Font.ColorIndex = 2
Set resultado = Range(rango).FindNext(resultado)
Loop While Not resultado Is Nothing And resultado.Address <> primerabusqueda

   If contador = 1 Then
    MsgBox &quot;Se encontró &quot; &amp; contador &amp; &quot; coincidencia.&quot;
    Else
    MsgBox &quot;Se encontró &quot; &amp; contador &amp; &quot; coincidencias.&quot;
   End If

   End If

End Sub

Quiero buscar un valor en una planilla excel.

Saludos

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Buscar un Valor en un Rango de Celda en EXCEL
Posted: Tue Mar 17, 2015 03:04 PM
Te doy algunas notas y creo que usando un for anidado puedes recorrer cada celda y verificar el valor que buscas, saludos... :-)

Code (fw): Select all Collapse
   oExcel := TOleAuto():New( "Excel.Application" ) // ACTIVANDO EXCEL
   oExcel:Workbooks:Open( cFileXls ) // ABRO EL ARCHIVO SELECCIONADO
//
   oBook := oExcel:Get( "ActiveSheet" ) // ACTIVO HOJA EXCEL
   nRows := oBook:UsedRange:Rows:Count() // CANTIDAD LINEAS EXCEL INCLUYENDO LA LINEA 1 QUE ES LA CABECERA
   nCols := oBook:UsedRange:Columns:Count() // CANTIDAD COLUMNAS EXCEL


Valor de la celda
Code (fw): Select all Collapse
oBook:Cells( nRow, nCol ):Value


Usando IF
Code (fw): Select all Collapse
      IF LEN( oBook:Cells( nRow, 13 ):Value ) <= 50 // DESDE 1-50
         cSql += "rep_observa1=" + ClipValue2SQL( SUBST( oBook:Cells( nRow, 13 ):Value ,;
            1, Len( oBook:Cells( nRow, 13 ):Value ) ) ) + ", "

      ELSE
         cSql += "rep_observa1=" + ClipValue2SQL( SUBST( oBook:Cells( nRow, 13 ):Value, 1, 50 ) ) + ", "
      ENDIF


Espero te ayude o de idea de como hacerlo, a la orden por cualquier ayuda.
Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion