Moverse alfabeticamente por un msflexgrid

Ariel
23 de Enero del 2004
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.

Baltasar
23 de Enero del 2004
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