Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Buscar en columnas de Excel

Estas en el tema de Buscar en columnas de Excel en el foro de Visual Basic clásico en Foros del Web. Necesito un código que me permita buscar un texto en las celdas de una columna determinada de una hoja de Excel. Gracias...
  #1 (permalink)  
Antiguo 14/02/2008, 16:37
 
Fecha de Ingreso: enero-2008
Mensajes: 10
Antigüedad: 16 años, 3 meses
Puntos: 0
Buscar en columnas de Excel

Necesito un código que me permita buscar un texto en las celdas de una columna determinada de una hoja de Excel. Gracias
  #2 (permalink)  
Antiguo 15/02/2008, 01:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 6 meses
Puntos: 13
Re: Buscar en columnas de Excel

Hola

Primero selecciona las celdas en las que quieres buscar (p.e. Range("F6:I12").Select), luego utiliza selection.find y finalmente te puedes mover con selection.findnext

P.D. Puedes sacar un montón de código utilizando la opción Grabar Macro y luego pulsando en Modificar.

--Saludos--
  #3 (permalink)  
Antiguo 15/02/2008, 02:15
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Buscar en columnas de Excel

Otra opción es abrir un recordset con los datos de la columna y hacer un recorrido por el mismo.

p.ej. Queremos buscar en la columna "B" (desde la fila 1 hasta la 20) de la hoja (Hoja1) en el Libro2.xls que se encuentra en el mismo directorio de la aplicación.

El dato a buscar, lo hemos escrito en un TextBox (Text1)

Código:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
    .ActiveConnection = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _
        App.Path & "\Libro2.xls;Extended Properties=Excel 8.0;"
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .Open "Select * From [Hoja1$B1:B20]"
End With
Do Until rs.EOF
    If rs(0) = Text1.Text Then
        MsgBox "Encontrado en la fila " & rs.AbsolutePosition + 1
        ' sumamos 1 a la propiedad AbsolutePosition porque el recordset
        ' considera la primera fila como nombre de campo  
        Exit Do
    End If
    rs.MoveNext
Loop
If rs.EOF Then MsgBox "No se encontró"
Set rs = Nothing
Para que lo anterior funcione, tienes que marcar las referencias a ADO y la librería de Excel (la versión que tengas)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:49.