Moverse alfabeticamente por un msflexgrid
estoy programando y tengo una lita de clientes en una msflexgrid y quisiera a medida que vaya apretando una letra que se vaya moviendo por la lista.
Suponiendo que el grid está ordenado por la columna 0, puedes usar esto:
Private Sub MGrid1_KeyPress(KeyAscii As Integer)
Dim mfila As Long
mfila = MGrid1.Row + 1
If mfila < MGrid1.Rows Then If UCase(Left(MGrid1.TextMatrix(mfila, 0), 1)) > UCase(Chr(KeyAscii)) Then mfila = 0
Do While mfila < MGrid1.Rows
If UCase(Left(MGrid1.TextMatrix(mfila, 0), 1)) = UCase(Chr(KeyAscii)) Then
MGrid1.Row = mfila
If Not MGrid1.RowIsVisible(mfila) Then MGrid1.TopRow = mfila
mfila = MGrid1.Rows + 1
End If
mfila = mfila + 1
Loop
End Sub
Lo acabo de hacer, así que espero que no tenga muchos fallos.
Saludos
Private Sub MGrid1_KeyPress(KeyAscii As Integer)
Dim mfila As Long
mfila = MGrid1.Row + 1
If mfila < MGrid1.Rows Then If UCase(Left(MGrid1.TextMatrix(mfila, 0), 1)) > UCase(Chr(KeyAscii)) Then mfila = 0
Do While mfila < MGrid1.Rows
If UCase(Left(MGrid1.TextMatrix(mfila, 0), 1)) = UCase(Chr(KeyAscii)) Then
MGrid1.Row = mfila
If Not MGrid1.RowIsVisible(mfila) Then MGrid1.TopRow = mfila
mfila = MGrid1.Rows + 1
End If
mfila = mfila + 1
Loop
End Sub
Lo acabo de hacer, así que espero que no tenga muchos fallos.
Saludos
