Que tal foro, estuve buscando informacion de autocompletar en un grid y encontre algo, pero aun no hepodido adecuarlo a lo que necsito:

Option Explicit

'Flag para la tecla BackSpace
Public KeyRetroceso As Boolean

Function Autocompletar_FlexGrid(MSFlexGrid As Object, _
TBox As TextBox, _
Columna As Long)

Dim i As Integer
Dim pos_SelStart As Integer

If (KeyRetroceso Or Len(TBox.Text) = 0) Then
KeyRetroceso = False
Exit Function
End If

With MSFlexGrid
'Recorremos todas las filas del MsFlexgrid
For i = 0 To .Rows - 1
'Busca en el flexgrid si hay coincidencia, en la fila y columna actual
If InStr(1, .TextMatrix(i, Columna), TBox.Text, vbTextCompare) = 1 Then

pos_SelStart = TBox.SelStart
'Asignamos el valor de la celda actual al textbox
TBox.Text = .TextMatrix(i, Columna)
'Indicamos el comienzo de la selección
TBox.SelStart = pos_SelStart
'seleccionamos la porción de texto en el Text
TBox.SelLength = Len(.TextMatrix(i, Columna)) - pos_SelStart
' Establecemos con TopRow , la fila arriba de todo
.TopRow = i
Exit For
End If
Next i
End With
End Function

Private Sub Text1_Change()
'Le pasamos a la rutina como parámetro el _
control MsFlexGrid , el textox a utilizar , _
y el número de la columna por la que se busca
Call Autocompletar_FlexGrid(MSFlexGrid, Text1, CLng(Text2))
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
'.. Si la tecla presionada es Backspace o la tecla Delete
If KeyCode = vbKeyBack Or KeyCode = vbKeyDelete Then
' ..si hay texto en el Textbox
If Len(Text1.Text) <> 0 Then
KeyRetroceso = True
End If
End If
End Sub

El problema en si es que me pide que le de el numero de columna en un text pero quiero que me lo tome en automatico la columna 5

Alguien me puede ayudar ?


Cargo el grid en otro control, eso no me da problema.

Saludos.