Unfortunately, the FlexGrid does not allow for direct editing. But there is a workaround. There are several steps for this.
1) Create a combobox on the form in the same container as the FlexGrid. Set the .Visible property of the combobox to false. Insure that the combobox is in front of the grid.
2) Then drop in the following code. What happens is that the user clicks on a cell, the value of the cell is copied into the combobox, the combobox is positioned on top of the cell, made visible, and given focus. In the lost focus, the selected value is copied from the combobox backup into the cell, and the combobox is made invisible again.
Private Sub grdGrid_Click()
Select Case grdGrid.Col
Case 1, 3, 4 ' <List of Columns that Use Text Boxes>
ActivateTextBox
Case 2, 5, 6 ' <List of Columns that Need Combo Box>
ActivateComboBox
End Select
End Sub
Private Sub ActivateComboBox()
cboCombo.Top = grdGrid.Top + grdGrid.CellTop - 20
cboCombo.Left = grdGrid.Left + grdGrid.CellLeft - 20
cboCombo.Width = grdGrid.CellWidth
cboCombo.Tag = grdGrid.Row & "," & grdGrid
cboCombo.Text = grdGrid.Text
cboCombo.Visible = True
cboCombo.Enabled = True
cboCombo.SetFocus
End Sub
Private Sub cboCombo_LostFocus()
Dim PrevPos_Arr As Variant
Dim RowID As Integer
Dim ColId As Integer
PrevPos_Arr = Split(cboCombo.Tag, ","

RowID = PrevPos_Arr(0)
ColId = PrevPos_Arr(1)
grdGrid.TextMatrix(RowID, ColId) = cboCombo.Text
cboCombo.Visible = False
End Sub
As you can see, you can also use the same technique with text boxes over those cells which would require a text box for updating.
Good Luck
--------------
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein