RE:insertar boton en una celda
Hola! Te paso un ejemplo que hace algo parecido a lo que queres, solo que el boton no esta visible hasta que usurio ingresa en alguna celda de la columna de los botones.
La idea es asi, en el formulario se encuentra un boton oculto, que se hace visible cada vez que se ingresa en alguna celda de la columna. Bueno en el ejemplo te vas a dar cuenta.
Para ejecutarlo, en un Form en blanco, agrega un MSFlexGrid y un CommandButton, sin cambiar los nombres por defecto que les pone Visual Basic. Luego copia y pega el siguiente codigo en la seccion General del Form
Private Sub Command1_Click()
With MSFlexGrid1
MsgBox "Producto : " & .TextMatrix(.RowSel, 1) & " - " & _
.TextMatrix(.RowSel, 2) & vbCr & _
"Precio : " & .TextMatrix(.RowSel, 3)
End With
End Sub
Private Sub Form_Load()
Command1.Visible = False
Command1.Caption = vbNullString
' Configuro el Flex,agregando nombres a los encabezados
' y agrego datos al mismo
With MSFlexGrid1
.Rows = 6
.Cols = 5
.FixedRows = 1
.FixedCols = 1
.ColWidth(0) = 200
.TextMatrix(0, 1) = "Código"
.ColWidth(1) = 800
.ColAlignment(1) = flexAlignCenterCenter
.TextMatrix(0, 2) = "Descripción"
.ColWidth(2) = 2000
.ColAlignment(2) = flexAlignLeftCenter
.TextMatrix(0, 3) = "Precio"
.ColWidth(3) = 1200
.ColAlignment(3) = flexAlignRightCenter
.TextMatrix(0, 4) = "Boton"
.ColWidth(4) = 1200
.TextMatrix(1, 1) = 1
.TextMatrix(1, 2) = "Arroz"
.TextMatrix(1, 3) = 10
.TextMatrix(2, 1) = 2
.TextMatrix(2, 2) = "Azucar"
.TextMatrix(2, 3) = 20
.TextMatrix(3, 1) = 3
.TextMatrix(3, 2) = "Aceite"
.TextMatrix(3, 3) = 30
.TextMatrix(4, 1) = 4
.TextMatrix(4, 2) = "Fideos"
.TextMatrix(4, 3) = 40
.TextMatrix(5, 1) = 5
.TextMatrix(5, 2) = "Bomba Nuclear"
.TextMatrix(5, 3) = 50
End With
End Sub
Private Sub MSFlexGrid1_EnterCell()
With MSFlexGrid1
'si es la cloumna 4 muestro el boton y lo ajusto
'a la medida de la celda(en tu caso es la columna 5,claro)
If .Col = 4 Then
Command1.Move .Left + .CellLeft, .Top + .CellTop, .CellWidth - 8, .CellHeight - 8
Command1.Visible = True
End If
End With
End Sub
Private Sub MSFlexGrid1_LeaveCell()
'al salir de la celda oculto el boton
Command1.Visible = False
End Sub
Al correr el ejemplo vas aver que lo que hace el boton solamente es mostrar el contenido de la fila actual.
Bueno,espero que te sirva.Saludos