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.
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
msgbox nlibro
Cuando dices que no se va al registro 100, es que no mueve la grilla y se enfoca???
Hola, proba algo asi:
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.
oye me funciono seba123neo gracias por el aporte