pocisionar lo encontrado en un mshflexgrid

Iniciado por deanelker, 27 Enero 2010, 16:51 PM

0 Miembros y 1 Visitante están viendo este tema.

deanelker

hola  mi problemita es este yo tengo este codigo para la busqueda, esta excelente, me busca letra o sino la palabra completa.

Dim nlibro As Integer, i As Integer

With MSHFlexGrid1
 
.Col = 1
For i = 0 To .Rows - 1
.Row = i
nlibro = InStr(UCase(.Text), UCase(txtbusqueda.Text))
If nlibro = 1 Then
.ColSel = 6
.TopRow = 1
Exit For
End If
Next i
End With
lo que yo quiero es que cuando me busque digamos un registro 100 se vaya al registro 100 y me aparezca en pantalla el registro 100.

por que el codigo anterior me busca, los selecciona, pero no se va al registro 100 me explico. por fa ayudenme.

Sk9ITk5Z

cuando le das buscar donde te lo muestra???


nlibro = InStr(UCase(.Text), UCase(txtbusqueda.Text))

alo que veo solo tienes que poner "nlibro" donde lo quieras mostrar, osea si quieres verlo en una ventana usa en msgbox

Código (vb) [Seleccionar]
msgbox nlibro
Este es un pueblo de corazón extraviado, no quiere conocer mis caminos por eso no entraran en mi descanso.

ssccaann43 ©

Cuando dices que no se va al registro 100, es que no mueve la grilla y se enfoca???
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

seba123neo

Hola, proba algo asi:

Código (vb) [Seleccionar]
Option Explicit

Private Sub Command1_Click()
    Call Buscar("Palabra 100")
End Sub

Private Sub Form_Load()
    With MSHFlexGrid1
        .FixedCols = 0
        .FocusRect = flexFocusNone
        .SelectionMode = flexSelectionByRow
       
        .FormatString = "Items"
       
        Dim i As Integer
       
        For i = 1 To 1000
            .AddItem "Palabra " & (i)
        Next
       
        .ColWidth(0) = 1500
        .RemoveItem 1
    End With
End Sub

Private Sub Buscar(ByVal pPalabra As String)
    Dim i As Long
   
    For i = 1 To MSHFlexGrid1.Rows - 1
        If LCase(MSHFlexGrid1.TextMatrix(i, 0)) = LCase(pPalabra) Then
           MSHFlexGrid1.Row = i
           MSHFlexGrid1.RowSel = i
           MSHFlexGrid1.Col = 0
           MSHFlexGrid1.ColSel = MSHFlexGrid1.Cols - 1
           MSHFlexGrid1.TopRow = i
           Exit For
        End If
    Next i
End Sub


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

deanelker

oye me funciono seba123neo gracias por el aporte